java中的优先队列-二叉堆

https://blog.csdn.net/yjw123456/article/details/89483897
java中的优先队列-二叉堆

什么是堆?

优先队列:(Priority Queue):特殊的“队列”,取出元素的顺序是依照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序。

java中的优先队列-二叉堆
java中的优先队列-二叉堆
java中的优先队列-二叉堆
java中的优先队列-二叉堆
java中的优先队列-二叉堆

最大堆的插入

java中的优先队列-二叉堆
要跟父节点去调整,要调整到你插进去之后仍然是有序的
java中的优先队列-二叉堆
java中的优先队列-二叉堆
i表示要放的位置,父节点就是i/2的位置,i=i/2
java中的优先队列-二叉堆
如果我们要插入的一个数是最大的,一般情况下,还要加一个条件,如果i>1的时候才开始
java中的优先队列-二叉堆
因为我们在0这里放了一个最大的值
java中的优先队列-二叉堆

最大堆的删除

java中的优先队列-二叉堆
java中的优先队列-二叉堆

相关文章:

  • 2021-09-08
  • 2021-08-19
  • 2022-12-23
  • 2021-10-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-15
猜你喜欢
  • 2021-11-04
  • 2021-05-22
  • 2021-12-02
  • 2022-01-29
  • 2022-12-23
  • 2021-05-29
相关资源
相似解决方案