#include <stdio.h>
#define n 9
//堆排序建堆
/*
*/
int AdjustDown_maxheap(int a[],int i,int len)//向下调整
{
int temp;
//while(2*i<=len)//在返回到i=3的时候死循环了。
{
if(2*i+1<=len)
{
if(a[i]<a[2*i]||a[i]<a[2*i+1])
{
if(a[2*i]<a[2*i+1])
//写成a[2i]会报error: invalid types 'int*[__complex__ int]' for array subscript
{
temp=a[2*i+1];
a[2*i+1]=a[i];
a[i]=temp;
i=2*i+1;
AdjustDown_maxheap(a,i,len);
}
else
{
temp=a[2*i];
a[2*i]=a[i];
a[i]=temp;
i=2*i;
AdjustDown_maxheap(a,i,len);
}
}
}
else if(2*i<=len)//死循环的时候在这
建堆算法
最新推荐文章于 2024-05-27 07:45:48 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)