60得票4回答
如何实现基于最小堆的优先队列中O(logn)的减少关键字操作?

我正在开发一个演示 Djikstra 算法 的应用程序,为了使用它,当元素的值减少时,我需要恢复堆的属性。 关于复杂性问题,当算法改变元素的值时,该元素在内部结构(在这种情况下是堆)中用于优先级队列的索引是未知的。因此,我目前需要进行 O(n) 搜索,以恢复索引,然后才能对其执行实际的 de...

8得票2回答
支持 decrease-key 操作的有序字典?

许多快速优先队列(例如Fibonacci堆和pairing堆)支持减少键操作,它可以高效地降低已存储在优先队列中的元素的优先级。在Fibonacci堆和pairing堆的情况下,相比从优先队列中删除元素并稍后重新插入,减少键可以更快地执行。 我想知道是否可以在有序字典结构(二叉搜索树、跳表等...