fibonacci-heap相关内容

斐波那契堆或布罗达尔队列是否在实践中在任何地方使用?

斐波那契堆在实践中是否在任何地方使用?我环顾四周,找到了相关问题的答案(见下文),但实际上并没有完全回答这个问题. 斐波那契堆有很好的实现,包括标准Boost C++ 等库.这些库包含斐波那契堆的事实表明它们必须在某处有用. 我们知道需要满足某些条件才能使斐波那契堆在实践中更快:“在实践中受益于斐波那契堆, 你必须在一个使 reduce_keys 非常频繁的应用程序中使用它们";"要使斐波 ..
发布时间:2021-12-22 08:32:40 其他开发

二元堆和斐波那契堆的实际应用

斐波那契堆和二元堆在现实世界中的应用是什么?如果你能分享一些你用它解决问题的例子,那就太好了. 编辑:还添加了二进制堆.很想知道. 解决方案 您在现实生活中很少会用到.我相信斐波那契堆的目的是改善 Dijkstra 算法的渐近运行时间.对于非常非常大的输入,它可能会给您带来改进,但在大多数情况下,您只需要一个简单的二叉堆. 来自维基: 虽然a的总运行时间开始的操作序列空结 ..
发布时间:2021-12-22 08:29:25 其他开发

是否有斐波那契堆的标准 Java 实现?

我正在研究不同类型的堆数据结构. 斐波那契堆似乎在 (1) 插入、(2) 删除和 (2) 找到最小元素方面具有更好的最坏情况复杂度. 我发现在 Java 中有一个 PriorityQueue 类,它是一个平衡的二进制堆.但为什么他们不使用斐波那契堆? 另外,java.util 中是否有斐波那契堆的实现? 谢谢! 解决方案 不,标准 Java 集合 API 不包含斐波 ..
发布时间:2021-12-22 08:18:08 Java开发

斐波那契堆数据结构背后的直觉是什么?

我已经阅读了关于斐波那契堆的维基百科文章并阅读了 CLRS 对数据结构的描述,但它们提供的内容很少为什么这个数据结构有效的直觉.为什么斐波那契堆的设计方式如此?它们是如何工作的? 谢谢! 解决方案 这个答案会很长,但我希望它有助于提供一些关于斐波那契堆来自何处的见解.我假设您已经熟悉二项式堆和摊销分析. 动机:为什么是斐波那契堆? 在进入斐波那契堆之前,最好先探索一下为什 ..
发布时间:2021-12-22 08:16:16 其他开发

斐波那契堆的项目构想

我正在学习计算机编程的初级课程,我(和另外3个学生)希望为最终项目实现Fibonacci堆.谁能建议斐波那契堆的一些好的应用?浮华的东西足以成为好的演示材料吗? 解决方案 (理论上)有许多算法从斐波那契堆的效率中受益,其中最简单的是用于最小生成树的Prim算法. 请记住:尽管斐波纳契堆在理论上是最佳的,但在上述两个问题上,它们往往比二进制堆的表现要好.为了使斐波那契堆真正发光,您需要 ..
发布时间:2020-07-22 21:55:41 其他开发

查找从m到n的斐波那契数的总和的最后一位。 (0≤𝑚≤𝑛≤10 ^ 14)

我的代码如下: m,n = map(int,input()。split()) #编写函数“ fibtotal”,该函数接受输入x并给出准确的fib(x + 2)%10(总和,直到fib(x)== fib(x + 2)-1) #使用上面的函数获取fibtotal(m-1)和fibtotal(n) #从fibtotal(n)减去fibtotal(m-1)并做mod 10给出总和的最后一位从 ..
发布时间:2020-06-03 21:37:21 其他开发

使用现有的Fibonacci Heap Java实现与Dijkstra的最短路径Java实现

使用java编程语言,我试图在具有正边缘成本的图上实现最有效的最短路径算法。据我所知,这将是Dijkstra的算法,其中Fibonacci堆作为优先级队列。我借用了Keith Schwarz的以下Fibonacci Heap实现,如链接中所述。 http://keithschwarz.com/interesting/code/?dir=fibonacci-heap 在我的代码中,我还修改了这 ..
发布时间:2018-12-28 16:15:23 Java开发

如何显示具有n个节点的斐波那契堆可以具有高度n?

我想显示一个具有n个节点的斐波纳契堆可能具有高度n。 我尝试了这个例子,但我不知道如何显示这个 解决方案 (我假设你的意思是高度n - 1:高度n是不可能的,因为n个节点的最大高度是高度的链接列表n - 1) 获取高度一个很容易:添加三个节点,然后执行一个出队最小值。这将删除一个节点,并将高度为0的其他两个节点组合到高度为1的结构中: A | B ..
发布时间:2017-04-03 14:49:34 其他开发

为什么斐波那契堆被称为斐波那契堆?

斐波那契堆数据结构的名称中包含“斐波纳契”,但数据结构中似乎没有使用斐波纳契数字。根据维基百科的文章: 斐波纳契堆的名字来自运行时分析中使用的斐波那契数字。 斐波纳契堆中是如何出现斐波那契数的? 解决方案 斐波那契堆由一系列不同“秩序”的较小的堆序树构成,这些树遵从某些结构约束。斐波纳契序列的出现是因为这些树以这样的方式构造,使得阶数n的树在其中具有至少F n + 2个节点 ..
发布时间:2017-04-03 13:34:28 其他开发

Java:使用斐波那契堆实现Dijkstra算法

这里新增,但已经潜入客人一段时间了:) 好的,所以我一直在尝试用Dijkstra的最短路径算法斐波那契堆(在Java中)。经过一番搜索,我设法绊倒了代表斐波纳契堆的两个现成的实现。第一个实现是相当完美的,可以在 here 找到。第二个实施方式似乎不太优雅,是此处。 现在,这一切都看起来不错,很好。但是,我想使用我的Dijkstra的算法的其中一个实现,但我还没有运气。使用Dijkstr ..
发布时间:2017-04-03 12:23:34 Java开发

斐波纳契堆积或Brodal队列在实践中使用吗?

斐波纳契堆是否在实践中使用?我已经看了一下SO,找到了相关问题的答案(见下文),但没有什么可以真正回答这个问题。 有很好的Fibonacci实现,包括标准库,如Boost C ++ 这些图书馆包含斐波那契堆的事实表明,它们在某处必须是有用的。 我们知道,斐波纳契堆需要满足某些条件才能更快在实践中:“在实践中受益于斐波那契堆,您必须在减少密钥难以置信的应用程序中使用它们” ; “对于斐波纳契 ..
发布时间:2017-04-03 12:14:57 其他开发

是否有一个标准的Java实现的斐波纳契堆?

我正在研究不同种类的堆数据结构。 斐波纳契堆似乎对(1)插入,(2)删除和(2)找到最小元素有更好的最坏情况复杂度。 我发现在Java中有一个类 PriorityQueue ,这是一个平衡的二进制堆。但是为什么他们没有使用Fibonacci堆? 另外,在 java.util ? 谢谢! 解决方案 不,标准Java集合API不包含Fibonacci堆的实现。我不知道为 ..
发布时间:2017-04-03 11:51:05 Java开发

斐波纳契堆数据结构背后的直觉是什么?

我已经阅读了关于斐波那契堆的维基百科文章,并阅读了CLRS对数据结构的描述,但它们提供了一点直觉为什么这个数据结构工作。为什么斐波纳契堆的设计方式是他们的?他们如何工作? 谢谢! 解决方案 将会很长,但我希望它有助于提供一些关于斐波纳契堆来自哪里的洞察力。我将假设您已经熟悉二项式堆和摊销分析。 动机:为什么斐波纳契堆积? h1> 在跳入斐波纳契堆之前,首先要了解为什么我们 ..
发布时间:2017-04-03 11:18:36 其他开发

在boost中定义fibonacci堆的比较函数

我需要在我的项目中使用Fibonacci堆,我试图使用它从boost库。但我不知道如何为任意数据类型设置用户定义的比较函数。我需要为struct node构造一个最小堆,定义如下: struct node { int ID; int weight; struct node * next; / * dist是一个全局的整数数组* / bool operator> (st ..
发布时间:2016-10-25 13:57:29 C/C++开发

升压斐波那契堆减少操作

新的'堆'Boost库包括一个斐波那契堆。每个实现的复杂性可以在这里看到:的http:/ /www.boost.org/doc/libs/1_51_0/doc/html/heap/data_structures.html 。 我的问题是:为什么斐波那契堆减少操作为O(log(N)),而增加操作O(1)? 我想在Dijkstra算法,这在很大程度上依赖于一个快速下降的操作使用斐波那契堆进行试验。 ..
发布时间:2016-08-12 18:43:47 C/C++开发

定义比较功能的升压斐波那契堆

我需要使用斐波那契堆在我的项目,我想从Boost库使用它。但我想不出如何设置任意数据类型的用户定义的比较功能。我需要构造一个最小堆的定义结构节点如下: 结构节点 { INT ID; 诠释权重; 结构节点*接下来的; / * DIST是整数全局数组* / 布尔运算符> (结构节点B)//升压产生一个最大堆。我需要的是一个最小堆 ..
发布时间:2016-08-12 18:23:35 C/C++开发

如何实现Prim算法与斐波那契堆?

我知道 Prim算法,我知道它的实现,但我总是跳过,我现在要问的一部分。有人撰文指出,Prim算法的实现与斐波那契堆是 O(E + V登录(V) )和我的问题是: 什么是短暂的一个斐波那契堆? 它是如何实现的?和 您如何实现Prim算法与斐波那契堆? 解决方案 一个斐波那契堆是一个相当复杂的优先级队列具有优异的amoritzed在其所有业务渐近行为 - 插入,找到分钟,并减少键都跑在O(1) ..

二进制堆和斐波那契堆的真实世界中的应用

什么是斐波那契堆和二进制堆的现实世界的应用?这将会是巨大的,如果你能分享一些实例,当你用它来解决问题。 编辑:添加了二进制堆也。想知道。 解决方案 您很少会使用一个在现实生活中。我相信,斐波那契堆的目的是为了提高Dijkstra算法的渐近运行时间。它可能给你的改进非常大的投入,但大多数的时候,一个简单的二进制堆是你所需要的。 从维基: 虽然一个总运行时间 开始操作序列 空结构由界 界 ..
发布时间:2015-11-30 14:49:20 C/C++