我一直在练习各种算法,我刚刚完成了Dijkstra算法来计算图上节点之间的最短距离。在完成了利用索引minHeap的练习之后,我还完成了利用BFS (附带的解决方案)的练习。这让我想到了几个问题:
示例输入:
边=[1,7],[2,6,3,20,4,3],[3,14],[4,2],[],[]
开始=0

发布于 2021-03-16 14:38:58
BFS和Dijkstras算法计算两种不同的东西,它们在某些情况下是相同的。
给定起始节点s
edges.
这是两种不同的东西,但在某些情况下它们是相同的。
图是一棵树(任何给定的节点之间只有一条路径),所有的边权都是相等的(或者图是unweighted). )
如果使用Fibonacci堆实现Dijkstras算法的时间复杂度为O(用Fibonacci堆实现的话,时间复杂度为O(x=0),而BFS的时间复杂度为O(x=0)。
因此,如果输入允许您在两者之间进行选择,BFS可能是一个很好的选择,这是正确的。然而,在实践中,您可能希望首先对真实世界的数据进行一些基准测试。
https://stackoverflow.com/questions/65767874
复制相似问题