C语言堆排序:随机产生10000个无序数后排序、贴出程序运行完成时的屏幕截图或者输出文件的内容
这是一篇实验报告
一、实验内容:
堆排序。
二、所用算法的基本思想及复杂度分析:
1. 基本思想
堆排序是利用完全二叉树的性质的排序方法,在逻辑上将序列看成一棵树,由于需要利用结点坐标之间的乘除特点,故不用序列的零位置。
首先将待排序序列构造成一个大顶堆(从最后一个分支结点开始,通过比较筛选确定该位置的结点数值比它的左右孩子都要大,然后从后往前筛选每一个分支结点,最终即可得到大顶堆),此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,
原创
2021-10-14 22:47:51 ·
1416 阅读 ·
0 评论