您的位置:首页 > 理论基础 > 数据结构算法

【数据结构_1015_堆排序】一趟堆排序后的结果

2017-05-13 19:47 369 查看
注意,从1开始。

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int n;
void dui(int k,int a[])
{
int i=k,j=i*2;
int item=a[i];
while(j<=n)
{
if(j<n && a[j]>a[j+1])
{
j++;
}
if(item>a[j])
{
a[i]=a[j];
i=j;
j=i*2;
}
else break;
}
a[i]=item;
}
int main()
{
int i,a[1005];
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
for(i=n/2;i>=1;i--)
dui(i,a);
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: