【堆排序为什么每次要交换根结点和末尾结点的位置】
HEAPSORT(A):BUILD-MAX-HEAP(A)
for i = A.length downto 2
exchange A with A
A.heap-size = A.heap-size - 1
MAX-HEAPIFY(A, 1)
============================
以上是堆排序(heapsort)的伪代码。
为什么每次要exchange A和A(伪代码中A代表第一个元素)。
另外,堆排序一定要用最大堆(大根堆)吗?如果用小根堆好像也可以实现。 顶帖,虽然还没有学到堆排序{:10_279:} 溯影 发表于 2018-4-23 18:41
顶帖,虽然还没有学到堆排序
谢顶
页:
[1]