實驗二作業

2021-10-22 06:41:26 字數 1018 閱讀 8746

1.問題

1、用floyd演算法求解下圖各個頂點的最短距離。寫出floyd演算法的偽**和給出距離矩陣(頂點之間的最短距離矩陣),按實驗報告模板編寫演算法。

2、對於下圖使用dijkstra演算法求由頂點a到頂點h的最短路徑,按實驗報告模板編寫演算法。

2.解析

(1)floyd

若則dist[i][k] + dist[k][j] < dist[i][j]更新dist[i][j] 。

當三層遍歷完畢之後,所有點對之間的最短路徑長度就能求出來了。當然,如果只需要求某個點到其他所有點的最短距離,那麼固定u,也就是說只用兩層遍歷就可以做到了。

最後的矩陣為

(2) dijkstra

①在開始時,將所有節點的(到起點)距離設為無窮大;全部(包括起點)納入不確定集合中。

②選擇起點,將其(到起點)距離設為0。因為自己到自己的距離肯定為0。

③迴圈地從不確定集合中選擇乙個節點,加入確定集合。

當不確定集合為空時,此迴圈結束。

3.設計

1、floyd演算法

void

floyd()

2、dijkstra演算法

void

dijkstra()

} book[u]=1

;for

(v =

1; v <= n; v++)}

}}

4.分析

演算法複雜度:

floyd:o(n^3)

dijkstra:o(n^2)

5.原始碼

[github原始碼位址]

python實驗作業二

1.計算 100除以3得到的商 餘數分別是多少?如果保留3為小數,結果是多少?要求 輸出結果應該是如下樣式 100除以3的商是33,餘數是1 100除以3,保留3位小數,結果是33.333 a int input 輸入被除數 b int input 輸入除數 print 除以 的商是 餘數是 for...

二 PTA實驗作業(函式)

題目一 2.設計思路 包括流程圖 主要描述題目演算法 由題目,設計思路如下 1.該題目可以將乙個公式拆分為三個子函式 2.宣告乙個fact 子函式用於求分子n!然後多次呼叫這個函式 3.最後在主函式中呼叫三次函式組合成乙個公式就可的到最終的結果 4.流程圖如下 最終的 如下 includedoubl...

第二章實驗作業

1.輸入課本各個例題,除錯執行程式,並分析程式,將每乙個程式改寫2到3個版本,自己分析程式結果,然後再除錯執行,核對分析結果的對錯。2.編寫程式輸入乙個三角形的三條邊,計算其面積和周長 3.編寫程式計算並輸出課本本章習題3表示式的值並分析結果。4.編寫乙個程式,輸入乙個一元二次方程的三個係數,並計算...