さいだんこうぞう
697 ワード
今、一番たくさんの構造を勉強しました.
//
#include<iostream>
using namespace std;
void createheap(int a[],int i)
{
int j=i/2,k,parent,flag;
int temp;
for(;j>=0;--j)//
{
parent=a[j];
flag=0;
//
while( 2*j+1<=i && !flag)
{
k=2*j+1;
//
if(k<i)
{
if(a[k]<a[k+1])k=k+1;
}
//
if(parent>=a[k])flag=1;
//
else
{
temp=a[j];
a[j]=a[k];
a[k]=temp;
j=k;
}
}
}
}
int main()
{
int a[10]={2,3,5,4,8,9,10,33,80,56};
int j;
createheap(a,9);
for(j=0;j<10;++j)
cout<<a[j]<<endl;
}