void MaxHeapify(vector<int> &Heap,int i)
{
//左子索引
int left=i<<1;
//右子索引
int right=(i<<1)+1;
int temp;
int largest=i;
if(left<=Heap.size() && Heap[left]>Heap[i])
largest=left;
if(right<=Heap.size() && Heap[right]>Heap[i])
largest=right;
if(i!=largest)
{
temp=Heap[i];
Heap[i]=Heap[largest];
Heap[largest]=temp;
MaxHeapify(Heap,largest);
}
}
6.2 保持堆的性质
最新推荐文章于 2023-06-10 15:35:49 发布