二分+BFS能取代Dijkstra算法吗?
来源:12-6 Dijkstra 和 BFS 的联系
讲武德的年轻人
2022-06-13
请问波波老师,如果我们只关心最短路径的长度(而不是路径本身),是不是也可以用二分搜索+BFS实现呢?相当于先猜一个最短长度,用BFS验证是否能够走得通;如果可以走得通,继续缩小上界进行BFS。如果可行的话,是不是时间复杂度跟Dijkstra算法类似呢?在log级别上可能时间复杂度上稍高,但是应该差距不大。谢谢老师!
写回答
1回答
-
liuyubobobo
2022-06-13
关键是你猜一个最短长度以后,如何用 BFS 验证?
你可以把你的设想用代码表示出来。然后随便找一个平台上的 dijkstra 的问题验证你的想法。
另外,dijkstra 的优势不仅仅是求出两点间的最短路径,而是直接求出了“单源最短路径”。单源最短路径的意思是,求出了从一个点 s 到图上所有点的最短路径。但是你的思路(假设是work的),只求出了两点的最短路径。如果要求从一点到图中所有点的最短路径,还要再乘以一个 V,复杂度妥妥超 dijkstra。
继续加油!:)
00
相似问题