MAX
-
HEAPIFY(A, i)
1
l ← LEFT(i)
2
r ← RIGHT(i)
3
if
l ≤ heap
-
size[A] and A[l]
>
A[i]
4
then largest ← l
5
else
largest ← i
6
if
r ≤ heap
-
size[A] and A[r]
>
A[largest]
7
then largest ← r
8
if
largest ≠ i
9
then exchange A[i] ↔ A[largest]
10
MAX
-
HEAPIFY(A, largest)
其运行时间为(lg n)
BUILD
-
MAX
-
HEAP(A)
1
heap
-
size[A] ← length[A]
2
for
i ← ⌊length[A]
/
2
⌋ downto
1
3
do
MAX
-
HEAPIFY(A, i)
HEAPSORT(A)
1
BUILD
-
MAX
-
HEAP(A)
2
for
i ← length[A] downto
2
3
do
exchange A[
1
] ↔ A[i]
4
heap
-
size[A] ← heap
-
size[A]
-
1
5
MAX
-
HEAPIFY(A,
1
)
其运行时间为 n lg n;
http://download1.youkuaiyun.com/down3/20070525/25001638939.c
7535

被折叠的 条评论
为什么被折叠?



