步遥情感网
您的当前位置:首页堆排序算法

堆排序算法

来源:步遥情感网
堆排序算法

一、 实验描述

运用堆排序算法对一组数据进行降序后输出。 二、 实验原理

堆排序算法是众多算法之中时间复杂度是比较小的,而要实现堆排序必须先将无序的数据组成大顶堆或者小顶堆然后把第一个元素和最后一个元素进行对调即进行“输出”,再调整剩余的n-1个元素为大顶堆或小顶堆,重复上述操作,直至把所有元素都“输出”,这样就完成了堆排序,最后按照由小到大或者由大到小的顺序进行输出。 三、 实验代码

#include using namespace std;

void heapadjust(int*&hh,int s,int m); void heapsort(int*h,int q); int h[100]; void main() { int i=1; }

void heapadjust(int*&hh,int s,int m) { }

void heapsort(int*h,int q) { int i=0;

int a=0; int rc=0; int j=0;

for(j=2*s;j<=m;s=j,j*=2) { }

rc=hh[s];

if(j=hh[j]) hh[s]=hh[j]; hh[j]=rc;

break;

++j;

int j=0; int q=0;

cout<<\"输入待排序数据(-1退出):\"<>j;// while(j!=-1)

{ h[i]=j; q++; i++; cout<<\"第\"<>j; } heapsort(h,q);

cout<<\"由小到大分别为:\"; for(i=1;i<=q;i++) cout<}

for(i=q/2;i>0;--i) for(i=q;i>1;--i)

heapadjust(h,i,q);

{ a=h[1]; h[1]=h[i]; h[i]=a; heapadjust(h,1,i-1); }

四、 运行结果

图1 运行结果

五、 实验总结

通过本次对堆排序算法的练习,再与其他排序算法的比较,更加明晰各种排序算法的利 弊,这对我以后的程序编写有很大帮助。

因篇幅问题不能全部显示,请点此查看更多更全内容