编程之美3.7

解法2:

传统的堆排序只是针对一组数据的排序,数据一般数量是不变的,但是这里作为队列的底层结构,要求支持元素的进队和出队,

出队:将堆中(树的最后一个)节点和被队列(数中指针指向)中最后一个节点交换,然后以被删除的节点为根作一个自上而下的调整过程

复杂度(logN)

入队操作:树中最后一层加入一个节点,并以此自下而上的一个调整过程 logN,

 

代码本人就不在书写啦,

解法3:

我认为书本做法描述不是很好,关键点我认为就是一个最大值序列的维护,至于书本上非要用栈来实现队列,我觉得既然是空间换时间,我们完全可以用一个数组循环队列即可嘛

 

这是我个人的不同看法!!!请各位牛人指点

    原文作者:皮子2
    原文地址: https://blog.csdn.net/pzqingchong/article/details/7835672
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞