【问题标题】:Difference between A.heapsize and A.length for an array A with an example数组 A 的 A.heapsize 和 A.length 之间的差异,并举例说明
【发布时间】:2015-03-03 19:03:30
【问题描述】:

有人可以通过一个例子来解释一个数组 A 的 A.heapsize 和 A.length 之间的区别吗?

找到了一个相关的线程 (What is the difference between A.length and A.heap-size?),但无法获得差异,是堆排序特有的差异还是所有堆的普遍差异。

【问题讨论】:

  • 在 HeapSort 的情况下,我们通常通过消除堆中的最高/最低元素来减少我们的堆大小。所以数组大小是固定的,但堆大小正在减少......
  • 所以,对于二叉堆(当我们不是在谈论排序时)A.heapsize= A.length ,always.?
  • 是的,你可以说如果你把整个数组作为二进制堆,意味着我可以在数组内部构建堆,大小也为 k

标签: algorithm


【解决方案1】:

您可以认为您的数组是一个容器,而您的堆就是您拥有的资源量。在 C++(以及一般情况下)等语言中,数组将从默认值开始,例如 100 个元素。一旦您使用了所有可用空间,编译器将创建一个大小为原始数组两倍的新数组。

含义:您的堆可能有 10 个节点,但您的数组的容量为 100。我建议查看 C++ 向量 sizecapacity

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多