算法25 ◉‿◉ 堆排序
本帖最后由 不二如是 于 2017-5-29 07:11 编辑http://xxx.fishc.com/forum/201705/05/225545py2j222x5z6x55n2.png
按照提示,完成代码,秀秀你的编程能力!
不许看答案,否则打屁屁
程序分析:
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。
具体算法描述如下:
<1>.将初始待排序关键字序列(R1,R2….Rn)构建成大顶堆,此堆为初始的无序区;
<2>.将堆顶元素R与最后一个元素R交换,此时得到新的无序区(R1,R2,……Rn-1)和新的有序区(Rn),且满足R<=R;
<3>.由于交换后新的堆顶R可能违反堆的性质,因此需要对当前无序区(R1,R2,……Rn-1)调整为新堆,然后再次将R与无序区最后一个元素交换,得到新的无序区(R1,R2….Rn-2)和新的有序区(Rn-1,Rn)。不断重复此过程直到有序区的元素个数为n-1,则整个排序过程完成。
源代码:
**** Hidden Message *****
○面试题索引贴●
如果喜欢,请订阅{:10_303:} :
HTML5 - 庖丁解牛 + JavaScript - 庖丁解牛
{:10_281:}学一下 学习学习 相当高端的吧 em
学习 好快的动画啊 {:10_277:} 6666
学习 {:7_131:} 66666666666666666666 1 看看 顶顶顶
好好学习 我要看源代码 1
0.0
111
页:
[1]
2