l用floyd演算法求解下圖各個頂點的最短距離。寫出floyd演算法的偽**和給出距離矩陣(頂點之間的最短距離矩陣),
l 對於下圖使用dijkstra演算法求由頂點a到頂點h的最短路徑。
floyd演算法:暴力法,
dis[i][j]表示i
節點到j
節點的最短距離,每次遍歷
1-n個點判斷
dis[i][k]+dis[k][j]
和dis[i][j]
的大小。
演算法:貪心法,首先把起點到所有點的距離存下來找個最短的,然後鬆弛一次再找出最短的,所謂的鬆弛操作就是,遍歷一遍看通過剛剛找到的距離最短的點作為中轉站會不會更近,如果更近了就更新距離,這樣把所有的點找遍之後就存下了起點到其他所有點的最短距離。
1floyd時間複雜度:三重迴圈void
floyd()7}
8}9}
1011
void dijkstra(int
a)16 vis[a]=1
;17 rep(i,1,n-1)24
}25 vis[k]=1
;26 rep(j,1
,n)30}31
}32 }
o(n^3)
;dijkstra時間複雜度:雙層迴圈內層每次遍歷
n點中到目標點的最近距離所以複雜度是
o(n^2)
演算法設計與分析 作業2
1 用floyd演算法求解下圖各個頂點的最短距離。寫出floyd演算法的偽 和給出距離矩陣 頂點之間的最短距離矩陣 2 對於下圖使用dijkstra演算法求由頂點a到頂點h的最短路徑 1 floyd演算法 首先從任意一條單邊開始,對於任一對頂點v1和v2,看看是否存在另乙個頂點v3,使得v1到v3再...
演算法分析與實踐 作業2 Floyd演算法
用floyd演算法求解下圖各個頂點的最短距離。最大容量 define vertextype int 頂點型別 define inf 65535 象徵無窮大 typedef struct graph 鄰接矩陣 int p num num 前驅表 int vexnum,arcnum vernum為頂點個...
演算法分析課作業
求陣列中最大的最小數之差 法一 temp 58,65,32,100,12,20,87,3,88 temp.sort print temp print temp.pop temp 0 結果 3,12,20,32,58,65,87,88,100 97法二 temp 58,65,32,100,12,20,...