• Paul Shan
    2021-12-25
    堆排序并不是稳定排序,所以相同序号没法做到先进后出,如果要保证先进先出,一种方法是再加一层,每个节点用一个队列而不是简单的节点表示,这样所有权值相同的节点就进入了一个队列,然后用这个队列保证先进先出。还有一种方法是修改对键值的定义,也就是把时间因素考虑近来,让时间作为排序的次要因子,这样就可以保证键值唯一。

    作者回复: 正解

    共 5 条评论
    17
  • 丶
    2021-12-28
    昊哥,能不能讲解一下每篇文章后问题的答案呀?感觉自己心里有了答案,但是没有一个参考,总感觉不大对

    作者回复: 好的好的 不过一般都会有同学回复的还不错的 我回头看看是不是可以置顶之类的~

    
    2
  • muyinliu
    2022-03-21
    这也说明 PQ 默认情况下实现的是小顶堆。 --- 是否可以考虑把图都换成小顶堆的图,我第一次看本章的时候很疑惑,总觉得图和代码对不上号

    作者回复: 好的 我之后修改一下~

    
    
  • ZeroIce
    2022-02-07
    上面那个满二叉树是不是和完全二叉树混淆?
    共 1 条评论
    3
  • 余先声
    2022-05-15
    要保证相同优先级的元素也需要保证FIFO的特性,那么可以新引入一个自增id的概念。比较器当判断优先级相等的时候,就按id的大小进行排序,id小的在前,大的在后
    
    1
  • 蒋某人尚需顿悟
    2023-04-19 来自上海
    java堆内存和这个堆结构有什么联系吗
    共 2 条评论
    
  • SevenHe
    2022-03-22
    一点收获,在遇到满二叉树或稠密二叉树的场景时,可以考虑用数组来存放,有如下优势: 1. 空间利用率高,比起指针的方式,也更满足内存局部性原理 2. 无需后继节点指针,内存占用也更小 3. 寻址效率高,结合位运算即可快速寻址
    
    