【算法百题之十五】堆排序的实现
大家好,我是Lampard~~
很高兴又能和大家见面了,接下来准备系列更新的是算法题,一日一练,早日升仙!
今天的问题是:
实现堆排序。在上一篇博客中我们就已经提及到如何实现大顶堆。
其中包含了插入,删除,上浮,下沉四个方法。那么有了之前的准备后,堆排序就十分轻松了:
如果你想从小到大输出的话,就使用一个栈来存储
如果你想从大到小输出的话,就使用一个队列来存储
我们只需要把根结点的值插入到存储的集合里,然后删除根节点。循环操作,就可以得到结果。
测试函数:
测试结果: