请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

最大堆和最小堆问题

最大堆定义不是应该是,堆中某个节点的值总是不大于父节点的值,排序出来有可能不是按照从大到小的顺序排列啊,如您在当时讲最大堆的那个例子,62,41,30,28,16,22,13,19,17,15

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2019-04-25 05:23:45

是的,直接将最大堆的元素按照数组的顺序取出来不是有序的。堆排序也不是把一组元素整理成堆就可以了的。在每次去出一个元素以后,还需要维护队的性质:)


具体可以参考我的课程《算法与数据结构》(https://coding.imooc.com/class/71.html),其中有详细介绍堆排序的过程:)


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 宝慕林2471919 #1
    是不是用这个优先队列,因为是最大堆,打印出来的数字也不一定就是从大到小排列的
    回复 有任何疑惑可以回复我~ 2019-04-25 08:38:55
  • liuyubobobo 回复 提问者 宝慕林2471919 #2
    抱歉,我没有太理解你的问题,具体你是用怎样的逻辑取出数字打印?
    回复 有任何疑惑可以回复我~ 2019-04-25 08:39:45
  • 提问者 宝慕林2471919 回复 liuyubobobo #3
    最大堆和优先队列是什么关系啊,有点迷糊,我以为优先队列就是最大堆或者最小堆实现的,所以以为用优先队列打印出数字是跟最大堆或者最小堆打印出数字是一样的
    回复 有任何疑惑可以回复我~ 2019-04-25 08:46:59
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信