void MaxHeapify(int a[],int i,int len)
{
int l=i*2,r=i*2+1;
int largest=i;
while(l<=len || r<=len)
{
if(l<=len && a[l]>a[i])
{
largest=l;
}
if(r<=len && a[r]>a[largest])
{
largest=r;
}
if(largest != i)
{
int temp=a[i];
a[i]=a[largest];
a[largest]=temp;
i=largest;
}
else
break;
l=i*2,r=i*2+1;
}
}
算法导论 练习题 6.2-5
最新推荐文章于 2020-10-05 22:11:38 发布