昨天写了一下自己有关小顶堆的感受;
今天主要写一下堆排序,堆排序虽然速度很快但是代码有点长,所以我们发明了优先队列;
初学者可以将整个代码打出来进行练习;
今天主要是思路,不发代码;
建一个最小堆
将一些数输入进去,如果不知道如何push,可以看下我的:博客
完成插入之后,就进行弹出首位元素,这个数应该是这个堆的最小值(这应该不用证明)
将数字保存后就将其弹出(pop)弹出之后或形成两个堆;这时就要将两个堆合并起来,可
以看我上面红色的博客。
将这些数输出之后就是一列从大到小的顺序这就是堆排序;
今天就就讲到这里吧(送上两张动态图)!
原文:https://www.cnblogs.com/zssmg/p/9114081.html