算法导论笔记:19斐波那契堆

       可合并堆是支持以下5种操作的数据结构,其中每个元素都有一个关键字:

       MAKE-HEAP():创建和返回一个新的不含任何元素的堆。

       INSERT(H, x):将一个已填入关键字的元素x插入堆H中。

       MINIMUM(H):返回一个指向堆H中具有最小关键字元素的指针。

       EXTRACT-MIN(H):从堆H中删除最小关键字的元素,并返回指向该元素的指针。

       UNION(H1,H2):创建并返回一个包含堆H1和堆H2中所有元素的新堆。堆H1和H2被销毁。

 

       斐波那契堆支持可合并堆的操作,而且还支持下面的两种操作:

       DECREASE-KEY(H, x, k):将堆H中元素x的关键字赋予新值k。假定新值k不大于当前的关键字。

       DELETE(H, x):从堆H中删除元素x。

 

       斐波那契堆的时间复杂度与普通的堆相比性能如下:

       斐波那契堆对于操作INSERT, UNION和DECREASE-KEY,比起普通的堆有更好的时间性能。注意,上图中,斐波那契堆的时间是摊还时间。

 

       理论上看,如果EXTRACT-MIN和DELETE操作的数目相比于其他操作小得多的时候,斐波那契堆尤其适用,这种情形出现在很多应用中:一些问题(计算最小生成树和寻找单源最短路径)中必不可少的用到斐波那契堆。

       但是实际上,除了需要管理大量数据的应用外,对于大多数应用,斐波那契堆的常数因子和编程复杂性使得它比普通二项堆并不那么适用。

       斐波那契堆对于SEARCH操作的支持比较低效,所以,设计给定元素的操作均需要一个指针指向这个元素。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值