2020春 演算法設計與分析 複習(1)

2021-10-07 16:17:44 字數 906 閱讀 7775

(1). 用偽**寫出求整數最大公因子的歐幾里得演算法。

1.輸入兩個數m,n

2.if(m>n),求餘數m%n

3.若餘數不為0,用n替代m,用餘數替代n => 重複2

4.若餘數為0,則n就是最大公約數

例如,求81和21的最大公約數:

81/21=3…18

21/18=1…3

18/3=6…0

∴最大公約數為3

(2). 考慮如下偽**

f(n)

1 if n=1

2 then return 1

3 else return n*f(n-1)

請說明f(n)的功能

斐波那契數列計算乘積

例如,n=5時:

return 5xf(4)=5x4xf(3)=…=5x4x3x2x1=120

(3). 時間複雜度是否是衡量乙個演算法效能的主要標準,為什麼?

衡量乙個演算法效能原則上無標準。【時間、空間、io、並行性】複雜度;記憶體演算法中【時間、空間】佔主導

(4). 包含死迴圈的程式是不是演算法,為什麼?

不是。有窮性?

(5). 是否可以通過提高演算法的時間複雜性來降低其空間複雜性?

時空互換:時間複雜度<->空間複雜度

動態規劃:空間換時間【台階問題的動態規劃】

(1).在資訊產業中演算法扮演什麼角色?

演算法是電腦科學基礎的重要主題(啥玩意兒…)

演算法設計與分析 1

實驗題目 生成兩個隨機的圖,乙個有向圖乙個無向圖。有向圖兩千條邊左右,無向圖一千條邊左右,邊的數量是大概的。100個頂點。要求能算出每個頂點的度。要求每次圖是隨機生成的,並且有良好的結構。今後的實驗都基於這個圖結構。任意語言和環境。建議鍊錶描述。然後基於這個圖實現乙個廣度優先搜尋。參考文獻 c 中的...

演算法設計與分析複習 分治法演算法描述

分治 劃分 解子問題 組合 每個遞迴演算法均可以轉換為迭代演算法 include include 尋找最大最小元素,最大比較次數 3 n 2 2 minmax low,high if high low 1 if arr low arr high return arr low arr high els...

演算法設計與分析作業(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...