【发布时间】:2014-08-17 12:53:21
【问题描述】:
在堆排序算法中
n=m
for k:= m div 2 down to 0
downheap(k);
repeat
t:=a[0]
a[0]:=a[n-1]
a[n-1]:=t
n—
downheap(0);
until n <= 0
有人可以向我解释一下在行中做了什么
n=m
for k:= m div 2 down to 0
downheap(k);
我认为这是堆构建过程,但for k:= m div 2 down to 0 是什么意思
n 也是项目数。那么在数组表示中,最后一个元素存储在 a[n-1] 中? 但是为什么要对 n> = 0 这样做。我们不能在 n>0 处完成。因为第一个元素会自动排序?
【问题讨论】:
标签: algorithm sorting data-structures heap heapsort