相关疑难解决方法(0)

如何在Dijkstra算法中使用二进制堆?

我正在编写dijkstra算法的代码,对于我们应该找到与当前正在使用的节点的距离最小的节点的部分,我在那里使用一个数组并完全遍历它以找出节点.

这个部分可以用二进制堆代替,我们可以在O(1)时间内找出节点,但是我们还在更进一步的迭代中更新节点的距离,我将如何合并该堆?

在数组的情况下,我所要做的就是去第(ith -1)索引并更新那个节点的值,但是在二进制堆中不能做同样的事情,我将不得不做完全搜索来计算退出节点的位置,然后更新它.

这个问题的解决方法是什么?

heap dijkstra

28
推荐指数
1
解决办法
3万
查看次数

标签 统计

dijkstra ×1

heap ×1