采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
最大堆定义不是应该是,堆中某个节点的值总是不大于父节点的值,排序出来有可能不是按照从大到小的顺序排列啊,如您在当时讲最大堆的那个例子,62,41,30,28,16,22,13,19,17,15
是的,直接将最大堆的元素按照数组的顺序取出来不是有序的。堆排序也不是把一组元素整理成堆就可以了的。在每次去出一个元素以后,还需要维护队的性质:)
具体可以参考我的课程《算法与数据结构》(https://coding.imooc.com/class/71.html),其中有详细介绍堆排序的过程:)
继续加油!:)
是不是用这个优先队列,因为是最大堆,打印出来的数字也不一定就是从大到小排列的
抱歉,我没有太理解你的问题,具体你是用怎样的逻辑取出数字打印?
最大堆和优先队列是什么关系啊,有点迷糊,我以为优先队列就是最大堆或者最小堆实现的,所以以为用优先队列打印出数字是跟最大堆或者最小堆打印出数字是一样的
登录后可查看更多问答,登录/注册
课程配套大量BAT面试真题,高频算法题解析,强化训练
1.1k 13
1.2k 12
683 11
1.5k 10
1.2k 10