提升斐波那契堆减少操作

2023-12-20

新的“堆”增强库包括斐波那契堆。每个实现的复杂性可以在这里看到:http://www.boost.org/doc/libs/1_51_0/doc/html/heap/data_structs.html http://www.boost.org/doc/libs/1_51_0/doc/html/heap/data_structures.html.

我的问题是:为什么斐波那契堆减少操作是O(log(N)),而增加操作是O(1)?

我想尝试在 Dijkstra 算法中使用斐波那契堆,该算法很大程度上依赖于快速减少操作。


根据http://www.boost.org/doc/libs/1_51_0/doc/html/heap/concepts.html http://www.boost.org/doc/libs/1_51_0/doc/html/heap/concepts.html

boost.heap 将优先级队列实现为最大堆,以与 STL 堆函数保持一致。这与使用最小堆的典型教科书设计形成对比。

教科书/维基百科斐波那契堆具有最高优先级元素和最低值,也称为最小堆(例如“1”比“2”优先级更高)。 STL 和 Boost(为了与 STL 保持一致)颠倒了定义,以便最高优先级具有最高值,也称为最大堆(即“2”优先级高于“1”)。

本质上这意味着decrease and increase教科书和Boost之间的含义相反。

如果你想获得一个最小堆(如教科书定义),你必须首先定义一个适当的boost::heap::compare函子为你的fibonacci_heap(参见此处的示例:在boost中定义斐波那契堆的比较函数 https://stackoverflow.com/questions/16705894/defining-compare-function-for-fibonacci-heap-in-boost),然后调用increase每当您减少与堆元素关联的值(从而增加优先级)时,反之亦然。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

提升斐波那契堆减少操作 的相关文章

随机推荐

  • 在shell脚本中传递su密码

    如何使用 su 在 shell 脚本中传递密码 不带 sudo 和 except 我试过 echo password su root c 但它不起作用 最好的方法是sudo 但是由于您不需要最佳解决方案 因此您可以使用script反而 sl
  • 将 perl 脚本移植到 Clearcase 的图形用户界面

    我们的环境中运行着相当多的 perl 脚本 甚至为其创建分支和视图也是通过脚本完成的 现在我们正在将此 perl 脚本移植到基于 GUI 的环境 您更喜欢哪种语言 我们有一些内部工具以 C 形式返回 开发人员不在我们身边 这也可能会被移植
  • 函数的节流和去抖动之间的区别

    任何人都可以给我一个简单的解释 说明出于速率限制目的而对函数进行节流和去抖动之间的区别吗 对我来说 两者似乎都做同样的事情 我查了这两个博客来找出答案 但我仍然无法理解 http remysharp com 2010 07 21 throt
  • React Material UI ThemeProvider 未应用

    我在用着 material ui 核心 https material ui com 处理我的 React 应用程序中的主题 但由于某种原因 某些样式没有被应用 这是我的sandbox https codesandbox io s eloqu
  • 下载文件的同时更新 JProgressBar

    我尝试过不同的方法来让它工作 但它们要么不能与进度条一起工作 要么不能按照我希望的方式工作 我已经创建了一个带有进度条的新窗口 并且需要创建一个方法 该方法允许我下载文件 同时更新JProgressBar 有一种 Apache Common
  • 在spring boot 2.0.0中设置jvmRoute

    对于粘性会话 我需要设置嵌入式 tomcat 的 jvmRoute 其实只是一个 System setProperty jvmRoute node1 是必需的 但我想设置一个 via application properties 可配置属性
  • 集市 + CruiseControl.Net

    我想在我的公司设置 CruiseControl Net 目前 我们在 Bazaar 存储库中存储了多个 net 解决方案 我想使用 MSBuild 来构建每个解决方案 这似乎没有太大争议 但我看不到将 CruiseControl Net 绑
  • 如何从本地 Hadoop 2.6 安装访问 S3/S3n?

    我正在尝试在本地计算机上重现 Amazon EMR 集群 为此 我安装了目前 Hadoop 的最新稳定版本 2 6 0 http ftp cixug es apache hadoop common hadoop 2 6 0 现在我想访问 S
  • 如何在elasticsearch中通过数组元素进行搜索?

    我有一个在elasticsearch中索引的文档 content Some content with someone mention mentions someone userId 4dff31eaf8815f4df04e2d62 我尝试通
  • 为绘图中的轴区域添加大括号[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想在图中的轴旁边添加大括号 大括号应该看起来像这样 所有学分至this https stackoverflow com a 9310002
  • 获取 DOM 中的 raphael id 属性

    我已经使用一些 SVG 转换为 Rapahelhttp readysetraphael com http readysetraphael com 以下是生成的代码示例 path6233 attr id path6233 我查看了 attr
  • 如何使用 python 将 html 元素保存为 jpeg/png 或 pdf

    所以我有一个 html 页面 b Bold text b table tr td abc td tr table 我怎样才能保存 b Bold text b 或任何 html 标签到 jpeg png 或 pdf 谢谢 要在 Python
  • 如何在不增加 Oracle 序列的情况下检索其当前值?

    是否有一条 SQL 指令来检索不递增序列的值 Thanks 编辑和结论 正如 Justin Cave 所说 尝试 保存 序列号是没有用的 所以 select a seq nextval from dual 足以检查序列值 我仍然认为奥利的答
  • Applescript 播放 iTunes URL 中的音乐

    以下脚本将在 iTunes 中打开曲目 use application iTunes property trackURL itmss itunes apple com us album brahms violin concerto in d
  • 如何使用IntelliJ Idea创建SBT项目?

    我刚刚开始使用 Scala LiftWeb Sbt 开发 我想在 IntelliJ Idea 中导入一个 Sbt 项目 实际上 我设法以两种不同的方式导入我的项目 1 与Maven 我创建了一个 Maven 项目 最重要的是创建了一个 Sb
  • NSUserDefaults 或钥匙串更好地在 iPhone 应用程序中保存用户名和密码

    在我的 iPhone 应用程序中 有一些机密数据 例如用户名 密码和一些 Web 服务的 URL NSUserdefaults 和 keychain 哪个更好 有人说 NSUserdefaults 不安全 为什么它没有安全感 任何人都可以给
  • 如何使用 XSD.exe 从 C# 类型生成 XML 架构,以便 [XmlAttribute] 属性映射到所需的 XML 属性?

    简单地说 当我使用 XSD exe Visual Studio 2012 附带的 从此类生成 XML 架构文件时 Serializable public class Person XmlAttribute public string Nam
  • R:混合效应模型中随机效应的协方差矩阵

    根据this https stats stackexchange com questions 24452 how to interpret variance and correlation of random effects in a mi
  • 如何追加nsdata

    我如何附加 nsdata 我将在要在套接字上发送的第一条消息上附加长度数据 我使用这样的代码 但运行时出错 int lendata message length NSData firstdata NSData dataWithBytes l
  • 提升斐波那契堆减少操作

    新的 堆 增强库包括斐波那契堆 每个实现的复杂性可以在这里看到 http www boost org doc libs 1 51 0 doc html heap data structs html http www boost org do