您的位置:首页 > 其它

最小堆的建立

2015-04-22 16:26 162 查看
#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;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: