之前一直覺得prim和dijkstra很相似,但是沒有仔細對比;
今天看了下,主要有以下幾點:
1:prim是計算最小生成樹的演算法,比如為n個村莊修路,怎麼修花銷最少。
dijkstra是計算最短路徑的演算法,比如從a村莊走到其他任意村莊的距離。
2:prim演算法中有乙個統計總len的變數,每次都要把到下一點的距離加到len中;
dijkstra演算法中卻沒有,只需要把到下一點的距離加到cls陣列中即可;
3:prim演算法的更新操作更新的cls是已訪問集合到未訪問集合中各點的距離;
23 for (j=0;j)
2429 }
dijkstra演算法的更新操作更新的cls是源點到未訪問集合中各點的距離,已經訪問過的相當於已經找到源點到它的最短距離了;
20for (j=1;j<=n;j++)
21prim演算法
1//初始化
2 memset(visited,0,sizeof
(visited));
3 visited[0] = 1
;4 len = 0;5
for (i=0;i0];6
//begin
7for (i=1;i)818
}19//訪問找到的那個點
20 len +=nlen;
21 visited[nid] = 1;22
//更新鄰接距離
23for (j=0;j)
2429 }
dijkstra演算法
1void dijkstra(intv)2
18}19 vis[nxt]=1;20
for (j=1;j<=n;j++)
2125
}26 }
Prim演算法和Dijkstra演算法的異同
之前一直覺得prim和dijkstra很相似,但是沒有仔細對比 今天看了下,主要有以下幾點 1 prim是計算最小生成樹的演算法,比如為n個村莊修路,怎麼修花銷最少。dijkstra是計算最短路徑的演算法,比如從a村莊走到其他任意村莊的距離。2 prim演算法中有乙個統計總len的變數,每次都要把到...
Prim演算法和Dijkstra演算法的異同
之前一直覺得prim和dijkstra很相似,但是沒有仔細對比 今天看了下,主要有以下幾點 1 prim是計算最小生成樹的演算法,比如為n個村莊修路,怎麼修花銷最少。dijkstra是計算最短路徑的演算法,比如從a村莊走到其他任意村莊的距離。2 prim演算法中有乙個統計總len的變數,每次都要把到...
Prim演算法和Dijkstra演算法的異同
今天看了下,主要有以下幾點 1 prim是計算最小生成樹的演算法,比如為n個村莊修路,怎麼修花銷最少。dijkstra是計算最短路徑的演算法,比如從a村莊走到其他任意村莊的距離。2 prim演算法中有乙個統計總len的變數,每次都要把到下一點的距離加到len中 dijkstra演算法中卻沒有,只需要...