最短路问题

最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。算法具体的形式包括:

  • 确定起点的最短路径问题 - 也叫单源最短路问题,即已知起始结点,求最短路径的问题。在边权非负时适合使用Dijkstra算法,若边权为负时则适合使用Bellman-ford算法或者SPFA算法
  • 确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。
  • 确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径。
  • 全局最短路径问题 - 也叫多源最短路问题,求图中所有的最短路径。适合使用Floyd-Warshall算法
一个有6个节点和7条边的图

用于解决最短路径问题的算法被称做“最短路径算法”,有时被简称作“路径算法”。最常用的路径算法有:

单源最短路径算法编辑

无向图编辑

权值要求时间复杂度作者
+ Dijkstra 1959
+ Johnson 1977 (二叉堆)
+ Fredman & Tarjan 1984 (斐波那契堆)
Thorup 1999 (要求常数时间复杂度的乘法)。

无权图编辑

算法时间复杂度作者
广度优先搜索 Konrad Zuse 1945,Moore 1959

有向无环图编辑

使用拓扑排序算法可以在有权值的DAG中以线性时间( )求解单源最短路径问题。

无负权的有向图编辑

假设边缘权重均为整数。

算法时间复杂度作者
O(V 2EL)Ford 1956
Bellman–Ford 算法O(VE)Shimbel 1955, Bellman 1958, Moore 1959
O(V 2 log V)Dantzig 1960
Dijkstra's 算法(列表)O(V 2)Leyzorek et al. 1957, Dijkstra 1959, Minty (see Pollack & Wiebenson 1960), Whiting & Hillier 1960
Dijkstra's 算法(二叉堆)O((E + V) log V)Johnson 1977
………………
Dijkstra's 算法(斐波那契堆)O(E + V log V)Fredman & Tarjan 1984, Fredman & Tarjan 1987
O(E log log L)Johnson 1981, Karlsson & Poblete 1983
Gabow's 算法O(E logE/V L)Gabow 1983, Gabow 1985
Ahuja et al. 1990
ThorupO(E + V log log V)Thorup 2004


参见编辑

🔥 Top keywords: Baike: 首页Special:搜索胖猫跳江事件背着善宰跑九龍城寨之圍城逆天奇案2璩静淚之女王歌手2024Energy (組合)新生 (网络剧)习近平匈牙利邊佑錫劉俊謙 (香港)金智媛神耆小子塞尔维亚金秀賢 (男演員)母亲节猩球崛起:王國誕生九龍寨城馴鹿寶貝家族榮耀之繼承者Seventeen (組合)六四事件不夠善良的我們张维为楊佩潔TripleS支配物种庆余年郭葦昀洪若潭命案金惠奫2024年英雄联盟季中邀请赛春色寄情人BABYMONSTER笑看風雲乘風2024排球少年!!角色列表破墓徐巧芯中华人民共和国中華民國打天下2WIND BREAKER—防風少年—习明泽排球少年!!彭丽媛磁暴ILLIT贾斯汀·比伯逆天奇案BOYNEXTDOOR猿人爭霸戰:猩凶革命張書偉我的婆婆怎麼那麼可愛我獨自升級怪獸8號謝坤達IVE (組合)與鳳行關於我轉生變成史萊姆這檔事角色列表黃道十二宮福建號航空母艦虽然不是英雄葉乃文五月天張員瑛草榴社区張文傑2024年花蓮地震极光香緹·摩爾迷宮飯呂家愷搜查班長1958日本劉德華海莉·鮑德溫蕭景鴻越位 (足球)葬送的芙莉蓮周處除三害 (電影)毛泽东願榮光歸香港林峯周雨彤伍允龍羅毓儀香港Baike: 分類索引沒有秘密猩球崛起:終極決戰角質層唐振剛柯佳嬿文化大革命