(1)用floyd演算法求解下圖各個頂點的最短距離。寫出floyd演算法的偽**和給出距離矩陣(頂點之間的最短距離矩陣)
(2)對於下圖使用dijkstra演算法求由頂點a到頂點h的最短路徑
(1)floyd演算法:首先從任意一條單邊開始,對於任一對頂點v1和v2,看看是否存在另乙個頂點v3,使得v1到v3再到v2的路徑小於v1到v2,如果存在則更新路徑資訊。
(2)dijkstra演算法:首先把起點到所有點的距離存下來找個最短的,然後再遍歷一遍看通過剛才找到的距離最短的點作為中間點會不會更近,如果距離更短則更新距離。
(1)floyd演算法:
for
(i=1
;i<=n;i++
)}
(2)dijkstra演算法:
void
dijkstra()
} vis[t]=1
;for
(k =
1; k <= n; k++)}
}}
(1)floyd演算法(時間複雜度):o(n^3)
(2)dijkstra演算法:o(n^2)
code
系統設計與分析作業2
1 簡單題 1 簡述瀑布模型 增量模型 螺旋模型 含原型方法 的優缺點 瀑布模型 優點 a.為專案提供了按階段劃分的檢查點。b.當前一階段完成後,您只需要去關注後續階段。c.可在迭代模型中應用瀑布模型。d.它提供了乙個模板,這個模板使得分析 設計 編碼 測試和支援的方法可以在該模板下有乙個共同的指導...
演算法設計與分析作業(1)
1.dijkstra求單源最短路徑 先進行存圖操作,將帶權有向圖用鄰接矩陣來表示 for int i 0 i u v dist map u v dist 用dis陣列來儲存0點到其他每乙個點的最短距離,初始時dis i map 0 i 接下來進行鬆弛操作,找出最短距離 首先0點為q集合中的點,0 1...
演算法分析與設計 作業1
問題 舉乙個例項,畫出採用prim演算法構造最小生成樹的過程 1 首先選定頂點1加入最小生成樹集合 2 以頂點1作為最小生成樹集合,尋找到其餘頂點構成的未選集合中權值最小的一條邊,此處尋找到頂點2,並將頂點2加入集合。3 以頂點2 3作為最小生成樹集合,尋找至其餘頂點構成集合權值最小的邊,此處找到頂...