最短路徑四種演算法 總結篇

2021-10-03 10:30:43 字數 589 閱讀 2294

最短路

在乙個圖中有 n個點、m條邊。邊有權值,權值可正可負。邊可能是有向的,也可能是無向的。給定兩個點,起點是s,終點是t,在所有能連線s和t的路徑中尋找邊的權值之「和」 最小的路徑,這就是最短路徑問題

最短路有兩種:

無權圖bfs求最短路

有權圖演算法\對比

主要適用方向

時間複雜度

處理負權邊

處理負權迴路

floyd

帶權圖的多源最短路徑

o(v3)

yesno

dijkstra

帶權圖的單源最短路徑

o(e*loge)

nono

bellman-ford

帶權圖的單源最短路徑

o(v*e)

yesyes

spfa

帶權圖的單源最短路徑

最壞o(v*e)

yesyes

floyd

傳送門

dijkstra

傳送門

bellman-ford

傳送門

spfa

傳送門

四種最短路徑演算法對比

floyd dijkstra bellman ford 佇列優化的bellman ford 空間複雜度 o n o m o m o m 時間複雜度 o n o m n logn o nm o nm 適用情況 稠密圖,和頂點關係密切 稠密圖,和頂點關係密切 稀疏圖,和邊關係密切 稀疏圖,和邊關係密切 ...

最短路徑四種解法

在學習 圖 的時候,遇到過一道經典的題 最短路徑。最短路徑有四種最經典的解法。廢話不多說,直接上 floyd warshall include using namespace std const int m 999999 int n,m,p1,p2,l int map 1000 1000 intma...

最短路四種演算法模板

1.floyed演算法求多源最短路 includeusing namespace std const int maxn 1e3 10 define inf 0x3f3f3f3f int mp maxn maxn 記錄圖之間的路徑 int main 初始化 for int i 0 i a b c mp...