《演算法分析》作業2

2022-07-01 07:00:14 字數 1536 閱讀 7262

l用floyd演算法求解下圖各個頂點的最短距離。寫出floyd演算法的偽**和給出距離矩陣(頂點之間的最短距離矩陣),

l 對於下圖使用dijkstra演算法求由頂點a到頂點h的最短路徑

floyd演算法:暴力法,

dis[i][j]表示i

節點到j

節點的最短距離,每次遍歷

1-n個點判斷

dis[i][k]+dis[k][j]

和dis[i][j]

的大小。

演算法:貪心法,首先把起點到所有點的距離存下來找個最短的,然後鬆弛一次再找出最短的,所謂的鬆弛操作就是,遍歷一遍看通過剛剛找到的距離最短的點作為中轉站會不會更近,如果更近了就更新距離,這樣把所有的點找遍之後就存下了起點到其他所有點的最短距離。

1

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 }

floyd時間複雜度:三重迴圈

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,...