当前位置 : 主页 > 编程语言 > java >

《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射

来源:互联网 收集:自由互联 发布时间:2022-07-13
13.2.7 优先级排列(堆) 插入时进行顺序调整的队列 [3,2,1,5,4]插入过程: 它的特征是:上方元素小,下方元素大,左右元素无顺序规律,每次插入过程只挪动一条没有分叉的自下而上的


《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_优先队列

《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_idea_02

 13.2.7 优先级排列(堆)

插入时进行顺序调整的队列

[3,2,1,5,4]插入过程:

《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_键值对_03

《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_idea_04

它的特征是:上方元素小,下方元素大,左右元素无顺序规律,每次插入过程只挪动一条没有分叉的自下而上的路径

再看看[3,2,1,5,4]删除过程:

《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_优先队列_05

《Java 核心技术 卷1》 笔记 第13章 集合(6)优先队列[堆] 与哈希映射_idea_06

它的特征是:上方元素小,下方元素大,左右元素无顺序规律,每次选择下方元素中较小的那个进行补位,每次只移动一条没有分叉的自下而上的路径

所以堆插入时的时间复杂度是O(logn),删除时的时间复杂度也是O(logn)

作者例子:

网友评论