返回介绍

一、综述

发布于 2025-02-17 12:55:39 字数 715 浏览 0 评论 0 收藏 0

1.斐波那契堆

斐波那契堆是可合并堆

在不涉及删除的操作(除去 EXTRACT 和 DELETE)中,操作仅需 O(1) 的平摊运行时间

当 EXTRACT 和 DELETE 的操作数目较小时斐波那契堆能得到较好的运行效率。

斐波那契堆不能有效地支持 SEARCH 操作

用于解决诸如最小生成树和寻找单源最短路径等问题的快速算法都要用到斐波那契堆。

2.斐波那契堆的结构

斐波那契堆由一组最小堆构成,这些最小堆是有根的无序树。

结点结构:

key: 关键字,作为排序、判断结点大小的标准

left, right:用于维护双链表,所有的根结点形成一个双链表,每个结点的孩子们形成双链表

parent, child : 维护父子关系

mark : 这个域与维护堆结构无关,只与具体的算法策略有关,不在这里讲

degree: 记录该结点有几个孩子

斐波那契堆

n:堆中结点的个数

min:批向最小的结点

3.可合并堆

引理 19.1 中给出的二项树的性质对无序二项树仍然成立 P278

有 n 个结点 FibHeap,结点的最大度数 D(n) = lgn(向下取整)

将合并堆的操作尽可能地推后

4.最大度数的界

在一个包含 n 个结点的斐波那契堆中,结点的最大度数 D(n) 为 O(lgn)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文