数据结构:堆
2021/11/9 6:14:23
本文主要是介绍数据结构:堆,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
堆 是一种基于[完全二叉树]的数据结构,可使用数组实现。以堆为原理的排序算法称为[堆排序],基于堆实现的数据结构为[优先队列]。堆分为[大顶堆]和[小顶堆],大(小)顶堆:任意节点的值不大于(小于)其父节点的值。
完全二叉树定义: 设二叉树深度为 kk ,若二叉树除第 kk 层外的其它各层(第 11 至 k-1k−1 层)的节点达到最大个数,且处于第 kk 层的节点都连续集中在最左边,则称此二叉树为完全二叉树。
如下图所示,为包含 1, 4, 2, 6, 8
元素的小顶堆。将堆(完全二叉树)中的结点按层编号,即可映射到右边的数组存储形式。
通过使用「优先队列」的「压入 push()
」和「弹出 pop()
」操作,即可完成堆排序,实现代码如下:
//初始化小顶堆 Queue<Integer> heap = new PriorityQueue<>(); //元素入堆 heap.add(1); heap.add(4); heap.add(2); heap.add(6); heap.add(8); //元素出堆(从小到大) heap.poll(); // ->1 heap.poll(); // ->4 heap.poll(); // ->2 heap.poll(); // ->6 heap.poll(); // ->8
这篇关于数据结构:堆的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南