AOP-Chap24-Heaps and Priority Queues

  • priority queue is queue where each item has an associated priority, and the next item returned from the queue is the one with the highest priority
  • heap – 能够有效访问其最大(或最小)元素的数据结构。enqueue和dequeue O(lg(N)),peek O(1)

1 Heap Concepts

  • 堆是一棵complete binary tree,遵循堆排序规则。完整二叉树是指除最后一层外的每一层都有尽可能多的节点,最后一层是从左到右填充的树
  • 2种堆排序规则
    1. max-heap,每个节点都比它的子节点大
    2. min-heap,每个节点都比它的子节点小
      请添加图片描述

1.1 Insertion

  • 插入时,首先将新项放置在树中下一个可用的位置(底部最左边的打开槽位,或者如果底部已满,则放置新层的第一个槽位)。然后,通过“冒泡”节点来修复堆顺序(同时保持堆的完整性)。将节点与其父节点进行比较,如果违反了堆顺序,则交换这两个节点。然后,对位于其新位置及其新父节点重复该过程。这个过程将继续进行,直到节点相对于其父节点(确保整个堆的顺序正确)或节点到达根节点为止
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
  • O(lg(N)) --> 因为只在初始插入的路径上进行交换指向根,其长度必须为O(lg(N))
  • 树的高度确定是lg(N+1)

1.2 Deletion

  • 将根的位置与最后一行最右边的元素交换。现在,可以删除根元素,仍然保持树的完整性。但必须修复堆的顺序,将该节点从堆中取出ÿ
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值