关于堆(最大堆和最小堆)

发布于 2024-09-06 23:23:29 字数 117 浏览 5 评论 0原文

我有一个问题,在堆数据结构中,左孩子可以比其所在级别的右孩子多吗?我的意思是,考虑这三个数字 9、5、8,我想创建一个最大堆数据结构,因此根将为 9,并且 8 是其左子节点,5 是其右子节点,这是真的吗? 请帮助我,谢谢

I have this question that in the heap data structure , a left child can be more than a right child in its own level ? I mean that consider these three numbers 9,5,8 and I want to make a max-heap data structure so the root will be 9 and is it true that 8 be its left child and 5 be its right child?
please help me thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

赠我空喜 2024-09-13 23:23:30

最大堆属性:

  1. 根是最大元素。搜索最大元素的时间为 O(1)。
  2. 子树总是小于任何子树的根。(左子树和右子树之间没有条件)
  3. 最小元素位于叶元素中的某个位置, O(n/2) == O( n) 找到最小元素需要时间。

最小堆属性:

  1. 根是最小元素。搜索 mim 元素的时间为 O(1)。
  2. 子树总是大于任何子树的根。(左右子树之间没有条件)
  3. 最大元素位于叶子元素中的某个位置, O(n/2) == O( n) 找到最大元素需要时间。

因此,堆不适合搜索,但它用于对元素数组进行排序,因为搜索需要线性 O(n) 时间。

对于搜索,我们总是可以使用二叉搜索树(BST),它在 O(h) 时间内完成同样的事情。在最好的情况下,如果 BS 树是平衡的,它将在 O(logn) 中进行搜索。

Max-Heap properties:

  1. Root is the max element. O(1) time to search for max element.
  2. Children is always smaller than root of any sub-tree.(there is no conditions between left and right children)
  3. Minimum element lies somewhere in the leaf elements, i.e. O(n/2) == O(n) time is needed to find the minimum element.

Min-Heap properties:

  1. Root is the min element. O(1) time to search for mim element.
  2. Children is always greater than root of any sub-tree.(there is no conditions between left and right children)
  3. Maximum element lies somewhere in the leaf elements, i.e. O(n/2) == O(n) time is needed to find the maximum element.

Hence, Heap is not suitable for searching but it is used for sorting an array of elements, because searching takes linear O(n) time.

For searching, we could always go for Binary Search trees(BSTs) which does the same thing in O(h) time. And in best case, it would do the searching in O(logn) if the BS tree is balanced.

远山浅 2024-09-13 23:23:30

那没关系。最大堆中的节点必须具有较低的子节点,而最小堆中的节点必须具有较大的子节点。这是唯一的要求。

That doesn't matter. A node in a max-heap must have children that are lower, and a node in a min-heap must have children that are greater. Those are the only requirements.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文