您的位置:首页 > 其它

堆排序

2008-12-28 14:31 197 查看

堆排序

#include<iostream.h>
void Sift(int A[],int n,int i)
{
int x=A[i];
int j;
j=2*i+1;
while(j<=n-1)
{
if(j<n-1&&A[j]<A[j+1])
j++;
if(x<A[j]){
A[i]=A[j];
i=j;j=2*i+1;
}
else
break;
}
A[i]=x;
}

void HeapSort(int A[],int n)
{
int x;
int i;
for(i=n/2-1;i>=0;i--)
Sift(A,n,i);
for(i=1;i<=n-1;i++)
{
x=A[0];A[0]=A[n-i];A[n-i]=x;
Sift(A,n-i,0);
}
}

void main()
{
int a[]={99,12,32,14,25,98,24,44};
HeapSort(a,8);
for(int i=0;i<8;i++)
cout<<a[i]<<" ";
cout<<endl;
}

if (flag==1 || flag==2){
text_pagination(1);
}
else{
article.innerHTML=Text;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: