13.2.7 优先级排列(堆) 插入时进行顺序调整的队列 [3,2,1,5,4]插入过程: 它的特征是:上方元素小,下方元素大,左右元素无顺序规律,每次插入过程只挪动一条没有分叉的自下而上的
![《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_优先队列](http://img.558idc.com/uploadfile/allimg/java/08094419_62c78bf326a353122.png)
![《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_idea_02](http://img.558idc.com/uploadfile/allimg/java/08094419_62c78bf387f3b48617.png)
13.2.7 优先级排列(堆)
插入时进行顺序调整的队列
[3,2,1,5,4]插入过程:
![《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_键值对_03](http://img.558idc.com/uploadfile/allimg/java/08094419_62c78bf3c19c095859.png)
![《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_idea_04](http://img.558idc.com/uploadfile/allimg/java/08094420_62c78bf40fff212081.png)
它的特征是:上方元素小,下方元素大,左右元素无顺序规律,每次插入过程只挪动一条没有分叉的自下而上的路径
再看看[3,2,1,5,4]删除过程:
![《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_优先队列_05](http://img.558idc.com/uploadfile/allimg/java/08094420_62c78bf4881127778.png)
![《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_idea_06](http://img.558idc.com/uploadfile/allimg/java/08094421_62c78bf515be583420.png)
它的特征是:上方元素小,下方元素大,左右元素无顺序规律,每次选择下方元素中较小的那个进行补位,每次只移动一条没有分叉的自下而上的路径
所以堆插入时的时间复杂度是O(logn),删除时的时间复杂度也是O(logn)
作者例子:
❤
