您的位置:首页 > 其它

HeapSort

2009-02-19 00:00 246 查看
#include < iostream >
using namespace std;

int a[11] = { 0,12,14,2,3,0,29,17,16,36,7 };
void heapSort(int i,int n);

int main ( )
{
int i,k,n=10;
for ( i=n/2; i>=1; i--)
heapSort( i, n );
for ( k=n; k>=1; k--)
{
heapSort( 1, k );
swap (a[k],a[1]);
}
for ( i=1; i<=n; i++)
cout<<a[i]<<" ";
return 0;
}

void heapSort(int i,int n)
{
int tmp=a[i];
int j=i*2;
while ( j<=n )
{
if ( j<n&&a[j]<a[j+1] )
j++;
if ( tmp<a[j] )
{
a[i]=a[j];
i=j;
j=i*2;
}
else
break;
}
a[i]=tmp;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: