您的位置:首页 > 编程语言 > Java开发

基础算法(三)---堆排序(Java)

2017-05-02 08:15 197 查看
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。

堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。

堆排序的平均时间复杂度为Ο(nlogn) 。

算法步骤:

创建一个堆H[0..n-1]

把堆首(最大值)和堆尾互换

把堆的尺寸缩小1,并调用shift_down(0),目的是把新的数组顶端数据调整到相应位置

重复步骤2,直到堆的尺寸为1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息