发布时间 : 星期二 文章数据结构-实验9各种排序算法更新完毕开始阅读e76f6559767f5acfa1c7cd94
只要排剩下的数就可以啦*/ data[1]=data[i]; data[i]=temp; HeapAdjust(data,1,i-1);
cout<<\ 筛选调整得到堆:\
DispHeap(data,1,i-1);cout< } } void main() { int i,k,n=8; int a[]={49,38,65,97,76,13,27,49}; int R[20]; for (i=1;i<=n;i++) R[i]=a[i-1]; cout< cout<<\ 初始关键字: \for (k=1;k<=n;k++) cout< cout< for (i=n/2;i>=1;i--) HeapAdjust(R,i,n); //循环建立初始堆 } Heap_sort(R,n); cout<<\ 最终结果: \//输出最终结果 for (k=1;k<=n;k++) cout< cout< 四,实验小结 1、通过本次实验,加深了我各种排序算法的认识。 2、 将待排序列建成堆(初始堆生成)后,序列的第一个元素(堆顶元素)就一定是序列中的最大元素; 将其与序列的最后一个元素交换,将序列长度减一; 再将序列建成堆(堆调整)后,堆顶元素仍是序列中的最大元素,再次将其与序列最后一个元素交换并缩短序列长度;反复此过程,直至序列长度为一,所得序列即为排序后结果。