arrays - 检查包含 n 个元素的数组是否为最小堆的算法

标签 arrays tree heap minimum

我正在尝试概述一种算法来确定我的数组是否是最小堆。有没有任何文档可以帮助我解决这个问题?我在 Apache 的网站上找到了它的函数,但它没有确切地显示该函数是如何工作的;只是存在一个函数(BinaryHeap(boolean isMinHeap))。

最佳答案

The Wikipedia article应该对你有帮助。

这里有一些问题可以帮助您思考解决方案:

  1. 假设堆是最小堆,关于堆的根必须正确的是什么?
  2. 如果堆的根满足最小堆属性,如何确保根的子树也拥有该属性?
  3. 如果树的根没有 child 怎么办?它是最小堆吗?

关于arrays - 检查包含 n 个元素的数组是否为最小堆的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4157159/

相关文章:

将树折叠成字符串

java - 合并排序创建内存堆

arrays - 在 MATLAB 中将类数组的元素分配给各个变量时出现问题

C中比较两个char数组的内容

Java SWT Tree TreeItem Listener 返回 Widget Dispose 异常错误

algorithm - 构建切片树的算法是什么?

c++ - 堆排序 - 哪个堆(最小/最大)用于升序和降序排序?

algorithm - 查找最小堆是否有 k 个小于查询的元素

计算数组中整数的总和

javascript - 如何在 javascript 中镜像多维数组?