首先将待排序的数组构造成一个大根堆 , 此时 , 整个数组的最大值就是堆结构的顶端 。将顶端的数与末尾的数交换 , 此时 , 末尾的数为最大值 , 剩余待排序数组个数为n-1 。将剩余的n-1个数再构造成大根堆 , 再将顶端数与n-1位置的数交换 , 如此反复执行 , 便能得到有序数组 。
堆排序利用堆这种数据结构所设计的一种排序算法 。堆是一个近似完全二叉树的结构 , 并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点 。
秒懂生活扩展阅读
- 逝者如斯夫的斯怎么解释 逝者如斯夫
- 支付宝账户状态异常怎么回事
- 无火香薰怎么使用
- 炖鱼头汤怎么出奶白色
- 居民消费率怎么计算
- 微信拍一拍怎么改后面的字
- 怎么去选一个合适自己的大学
- 北京电影学院研究生怎么考
- 魅蓝metal怎么更换手机后盖
- 高中生怎么保送大学