思考题
6-1 用插入方法建堆
void Heap::Build_Max_Heap()
{
heap_size = 1;
//从堆中最后一个元素开始,依次调整每个结点,使符合堆的性质
for(int i = 2; i <= length; i++)
Max_Heap_Insert(A[i]);
}6-2 对d叉堆的分析
Last updated
void Heap::Build_Max_Heap()
{
heap_size = 1;
//从堆中最后一个元素开始,依次调整每个结点,使符合堆的性质
for(int i = 2; i <= length; i++)
Max_Heap_Insert(A[i]);
}Last updated
MAX-HEAPIFY(A, i)
1 largest <- i
2 for j <- 1 to d
3 k <- CHILD(i, j)
4 if k <= heap-size[A] and A[k] > A[largest]
5 largest <- k
6 if largest != i
7 then exchange A[i] <-> A[largest]
8 MAX-HEAPIFY(A, largest)