#include <cstdio>
#include <iostream>
using namespace std;
void heapAdjust(int a[],int n,int len)
{
int i=1,left,right,t,cur,j,min;
bool flag=false;
flag = true;
cur=n;
while(cur<=len/2&&flag)
{
flag=false;
left = cur*2;
right = left + 1;
if(right<=len&&a[left]>a[right])
{
min = right;
}
else min = left;
if(a[cur]>a[min])
{
t=a[min];
a[min]=a[cur];
a[cur]=t;
cur=min;
flag=true;
}
}
}
int heap_create(int a[],int len)
{
int i=1,left,right,t,cur,j;
bool flag=false;
for(j=len/2;j>0;j--)
{
heapAdjust(a,j, len);
}
for(i=len;i>0;i--)
{
cout<<a[1]<<",";
a[1]=a[len];
len--;
heapAdjust(a,1, len);
}
return 0;
}
int main()
{
int a[]={-1,49,38,65,97,76,13,27,49};
heap_create(a,8);
return 0;
}
heap
最新推荐文章于 2021-04-05 21:00:30 发布