ADS5 Binomial Queue

二项式队列

1.对于Bk

根节点孩子的数量: k k k

节点的总数: 2 k 2^k 2k

深度为d的节点的数量为: C ( k , d ) C(k,d) C(k,d)

总的深度为: k + 1 k+1 k+1

构造Bk就是把两个Bk-1合并起来。

父节点比孩子要小。
在这里插入图片描述

2.n个节点用二项式树的组合表示:

将n写作二进制数,二进制为1的位,说明需要一棵Bk

比如13=1101,需要B0,B2,B3

3.FindMin

遍历根的所有孩子,找到最小的

4.Merge

两个森林Merge:从低位开始,对应位的Bk Merge,变为Bk+1

Bk的merge:比较两个根,将较小的作为根,较大的放在右边

在这里插入图片描述

5.DeleteMin

1.找到最小的根节点

2.删除该节点,产生了新的树

3.Merge k值相同的树

6.复杂度

FindMinMergeaverage/worst insert(1次)DeleteMin
O(logN)O(logN)const/O(logN)O(logN)

ppt上说:N次插入的时间是O(N),又说一次插入的最坏时间是O(logN)

不懂啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值