最小堆的建立
#include<iostream>
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<string.h>
const int MAX=50;
using namespace std;
int h[MAX];
void sifup(int i)
{
if(i==1)
{
return;
}
while(i/2!=0)
{
if(h[i]<h[i/2])//小于父节点 //上浮
{
swap(h[i],h[i/2]);
}
else //等于父节点 或是 大于父节点 不需要操作
{
return;
//break;
}
i/=2;
}
}
int main()
{
for(int i=1;i<=10;i++)
{
h[i]=rand()%20;
sifup(i);
}
for(int i=1;i<=10;i++)
{
cout<<h[i]<<" ";
}
return 0;
}

浙公网安备 33010602011771号