迪節特斯拉最短路徑演算法

2021-09-24 18:07:18 字數 1105 閱讀 3391

最短路徑求取依靠的是鄰接矩陣

從點1出發

依次到其他各點的距離是

無窮大代表無法到達,其中1->2的距離最短 然後檢視2到達各點的距離

發現2->4距離為3然後更新1點到各點的距離 依次是0、1、12、1+3、無窮、無窮

然後查點4到達其餘個點的距離

然後  其到3點的距離為4,因為1+3+4<12故更新0、1、1+3+4、1+3、無窮、無窮

觀察點3到其餘各點的距離

到點5距離為5,因此可以更新點1到各點的距離為0、1、1+3+4、1+3、1+3+4+5、無窮

同理觀察5點到個點的距離更新點1到各點的距離0、1、1+3+4、1+3、1+3+4+5、1+3+4+5+4

也就是0、1、8、4、13、17

這時點1到其他個點的最短路徑也就求得

1-2點直接到達距離為1

1-3點最短路徑是1-2-4-3,距離為8

1-4點最短路徑是1-2-4,距離為4

1-5點最短路徑1-2-4-3-5,距離為13

1-6點最短路徑1-2-4-3-5-6,距離為17

**求解如下

#include

#include

#include

#include

#define inf 0x3f3f3f3f

using namespace std;

int map[1005][1005];

int vis[1005],dis[1005];

int n,m;//n個點,m條邊

void init ()

}void getmap()

}    

}void dijkstra(int u)

vis[u]=1;

for(int t=1;t

}vis[temp]=1;

for(int i=1;i<=n;i++)}}

}int main()

迪克特斯拉 Dijkstra 最短路徑演算法

在進行三維管線連通性分析時,需要運用到最短路徑演算法,主要思路為首先初始化圖,然後將查詢到的管點以及管線分別作為圖的頂點數以及邊數。export default clear function this.pathmatirx this.shortpathtable 初始化圖 init function...

最短路徑 迪傑拉斯演算法

迪傑拉斯演算法是求圖的最短路徑的乙個常用演算法。如圖所示為乙個 有權有向圖 假設起始點為v0,從起始點開始先去找與起始點距離最近的乙個點 v2。再去找尋距離v2最近的點v3,若此時到達v3還有其他路徑,需比較兩種路徑距離長短。值得注意的是,在構成最短路徑時,不能形成閉合迴路。實現 最短路徑 void...

最短路徑演算法 最短路

在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input 輸入包括多組資料。每組資料第一行是兩個整數n m n 100,m 10000 n...