java基础知识堆栈

java基础知识堆栈文章目录 堆的相关概念 Java 中的堆 offer 方法 poll 方法 手写堆需要实现哪些方法 堆的相关概念 堆 heap 是计算机科学中一类特殊的数据结构的统称 堆通常是一个可以被看做一棵树的数组对象 堆总是满足下列性质 堆中某个结点的值总是不大于或不小于其父结点的值 堆总是一棵完全二叉树 将根结点最大

大家好,我是讯享网,很高兴认识大家。



文章目录

    • 堆的相关概念
    • Java中的堆
        • offer方法
        • poll方法
    • 手写堆需要实现哪些方法

堆的相关概念

堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:

  • 堆中某个结点的值总是不大于或不小于其父结点的值;
  • 堆总是一棵完全二叉树。

根结点最大的堆叫做最大堆或大java基础知识堆栈根堆,根结点最小的堆叫做最小堆或小根堆。

举例说明
![小根堆](https://i-blog.csdnimg.cn/direct/8aebcf7ffee54706960c0e50a0edcb6e.pn
小根堆可以看到堆顶元素是最小的,每颗子树的根节点都是该树所有元素中最小的。
大根堆
大根堆和小根堆相反,堆顶是最大的。

堆只是保证了堆顶的原始是整个堆中最大的或最小的,并不能保证层序遍历得到的序列是有序的。

Java中的堆

 
讯享网 
offer方法

java的优先队列底层也是数组,每次调用offer()方法插入一个元素之后,要对堆进行重新调整,关键函数是:

讯享网

如果没有指定comparator,会继续调用:

 

可以看到添加一个元素实际上是向上调整堆的一个过程。

poll方法
讯享网
 

手写堆需要实现哪些方法

已知堆支持操作:

  • 获取堆顶元素
  • 向堆中添加元素
  • 删除堆顶元素
 
 

堆中插入元素之后,在对应的位置需要up。
堆中删除元素之后需要down。
任意位置修改后需要down和up一遍。

堆排序O(nlogn):

 
小讯
上一篇 2025-01-02 10:41
下一篇 2025-01-01 20:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/9510.html