Heap_size in heap_sort
Heap_size in heap_sort
我正在阅读Cormen的"算法导论",我正在尝试实现堆排序,但有一件事我一直无法理解:我们如何计算给定数组的heap_size
?我的课本上说
表示堆的数组 A 是具有两个属性的对象: A.length,它(像往常一样(给出数组中元素的数量, 和 A.heap-size,表示堆中有多少个元素 存储在数组 A 中。也就是说,虽然 A[1 .A.长度]可能包含 数字,仅 A[1..A.堆大小] 中的元素,其中 0 <= A.堆大小 <= A.长度,是堆的有效元素。
如果我实现一个数组作为std::vector<T> Arr
,那么它的大小将是Arr.size
,但它heap_size是什么目前超出了我的范围。
堆大小应该是一个单独存储的变量,由您自己管理。
每当从堆中删除或添加到堆中时,都应相应地递减或递增该值。
在C++中,使用 vector
,您实际上可以使用 size
,因为底层表示是一个至少与向量大小一样大的数组,如果您以较小的大小调用 resize
,则保证保持相同的大小。(因此,底层数组将是数组大小,向量大小将是堆大小(。
相关文章:
- 为什么 std::unique 不调用 std::sort?
- 对字符串进行排序时,在c++中处理sort()
- std::sort()函数无法对向量的一部分进行排序
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- C++中"std::sort"比较器的不同类型
- 如何使 std::sort 在 std::swap 和我的命名空间的模板化交换之间没有名称冲突?
- 为什么我的 heap.h 文件给我一个LNK2001错误?
- 按字母顺序对字符串中的字母进行排序,而无需使用内置的 sort()
- c++无值sort()的问题是什么?
- 将用户定义的类型与 std::vector 和 std::sort 一起使用
- 使用 std::sort 对向量进行稳定排序
- 如何使用 QSortFilterProxyModel::sort 对 Qlist 中的数据进行排序
- 当为可变性配置时,boost::heap::d_ary_heap 保留的额外 std::list 的目的是什么?
- std::sort 如何处理重复的数字?
- 了解 Linux 虚拟内存:valgrind 的 massif 输出显示了有和没有 --pages-as-heap 的主要差异
- 为什么 std::sort 找不到合适的(静态成员)函数重载?
- C++ <algorithm> 使用对象作为比较定义的 sort()
- 尝试使用谓词函数会导致错误:"std::sort"未找到匹配的重载函数
- unqualified sort() -- 为什么它在 std::vector 上使用而不是在 std::array 上
- 使用 std::sort 对二维 c 数组进行排序