『算法设计_伪代码』斐波那契堆

一、堆结构

由一组最小堆有序树组成,每个节点有key值、四个指针(parent,child,left,right)、两个属性(是否被标记,degree)组成,堆对象有两个属性:H.min(有序树roots中最小的那个),H.n(总节点数)

任何节点的degree不大于lgn向下取整

二、势能函数

由树的个数、被标记节点数确定

三、堆操作

1、初始化

由于势能变化为0,所以平摊代价等于实际代价

2、插入操作

PPT上未显式指定左右指针值,应该包含在list操作中

这个插入操作仅仅插入新的树,代价依然是线性的

3、寻找最小节点

4、合并不同堆

合并root链表,修改堆的min和n值

5、抽取最小值

 示意:

 

 

6、节点key值减小后调整

将被减小节点去mask后添加到root,根据其父节点是否mask决定是否递归向上操作

 

性能分析:

7、删除节点

修改为负无穷调整,抽取最小值

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值