算法学习笔记(五)

首先,先回顾队列的特点:先进先出。
1,入队元素放在队尾,出队元素从队头移出。
优先队列: 1,最大优先队列。
2,最小优先队列。
不再组合南浔先入先出的原则。

最大优先队列无论入队顺序如何,都是当前最大的元素优先出队。
最小优先队列无论入队顺序如何,都是当前最小的元素优先出队。

比如最大优先队列中有一元素为9,并且为该队列中最大元素,但是并不是队头元素,但是出队时,仍然让元素9首先出队。最小队列则相反,不论位置在哪儿,最小的优先出列。

2,二叉堆实现优先队列

2.1二叉堆的特性:

最大堆的堆顶是整个堆中的最大元素。
最小堆的堆顶是整个堆中的最小元素。

因此可以用最大堆来实现最大优先队列,每一次入队操作就是堆的插入操作,每一次出队操作就是删除堆顶节点。此处用到了上节所说的最大堆最小堆的插入删除节点操作。节点与左右孩子比较大小,大的上浮,小的下沉操作。这里就不列举图标展示了。
时间复杂度与二叉堆节点的操作一样,都是O(logn)。

小结:

树的概念:树是n个节点的有限集,有且仅有一个特定的称为根的节点。当N>1时,其余节点可分为m个互不相交的有限集,每一个集合本身又是一个树,称为根的子树。

二叉树的概念: 二叉树是树的一种特殊形式,每一个节点最多有两个孩子节点。二叉树包含完全二叉树和满二叉树两种形式。

二叉堆的遍历方式有几种:根据遍历节点之间的关系,可以分为前序遍历、中序遍历、后序遍历、层序遍历,从宏观角度划分可以划分为深度优先遍历和广度优先遍历两大类。

二叉堆的概念:二叉堆是一种特殊的完全二叉树,分为最大堆和最小堆。
在最大堆中,任何一个父节点的值,都大于或者等于它的左右节点的值。
在最小堆中,任何一个父节点的值,都小于或者等于它的左右节点的值。

优先队列:优先队列分为最大优先队列和最小优先队列。
在最大优先队列中,无论入队顺序如何,当前最大的元素都会优先出队,基于最大堆实现的。
在最小优先队列中,无论入队顺序如何,当前最小的元素都会优先出队,基于最小堆实现的。

下一节,开始复习排序算法。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值