跟我一起学算法——二项堆

本文详细介绍了二项堆的概念,包括与二叉堆、斐波那契堆的比较,二项树的定义和性质,以及二项堆的数据结构和操作。二项堆在合并操作上具有时间复杂度优势,适用于合并操作频繁的场景。文章还阐述了二项堆的基本操作如创建、查找最小值、插入、删除以及结点的减值和删除,这些操作的时间复杂度均为O(lgn)。
摘要由CSDN通过智能技术生成

1.二叉堆(Binary Heap)、二项堆、斐波那契堆(简称Fib堆)的比较:

相同:

  1. 都是可归并堆(Mergeable Heap);
  2. 它们都支持5个基本操作(创建、插入、查找最小值、抽取最小值、合并堆)和2个扩展操作
    (结点减值、结点删除)。

不同:

  1. 二叉堆是一种结点有序的完全二叉树,可采用数组结构存储,通过数组下标索引结点,分最大
    堆和最小堆。 二项堆和Fib堆都是最小堆。
  2. 二项堆由二项树组成,结构比二叉堆复杂,但其堆合并操作的时间复杂度较好。当堆合并操作
    较多时,可使用二项堆。反之,使用二叉堆即可。
    在这里插入图片描述

2. 二项树

2.1 定义

仅包含一个结点的有序树是一棵二项树(B_0树)。二项树B_k由两棵B_{k-1}树组成,其中一
棵B_{k-1}树的根作为另一棵B_{k-1}树根的最左孩子(k≥0)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值