标签:场景 基本 定义 初始 线段树 elements element 交换 图片
每次取出的元素是队列中优先级(自定义)最高的
常用场景:按一定的规则顺序筛选数据
本质结构:二叉堆(可利用数组结构来实现完全二叉树)
特性:
第一个元素array[0]优先级最高
下表i,对于元素array[i]:
父节点,下标为 (i-1)/2
左孩子,2*i+1
右孩子,2*i+2
数组中每个节点的优先级高于两侧子节点
基本操作:
向上筛选:新数据加入、先放到堆底部、不断的和父节点比较交换、反复、o(logK)
向下筛选:删除堆顶数据数据、将堆底部的元素放到堆顶、和两个孩子对比看哪个优先级最高交换、反复、o(logK)
优先队列的初始换:
O(n): o(1log1 +2log2 .......)
一些问题:
标签:场景 基本 定义 初始 线段树 elements element 交换 图片
原文地址:https://www.cnblogs.com/feihu-h/p/12159110.html