演算法第三章上機實踐報告

2022-05-20 04:19:24 字數 575 閱讀 2451

7-1 數字三角形 (30 分)

給定乙個由 n行數字組成的數字三角形如下圖所示。試設計乙個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。

1.路徑經過的數字總和最大

2.每一步可沿左斜線向下或右斜線向下

1)由題目可知從上到下,只能往左或者往右進行相加,那麼就可以模擬二叉樹的想法進行從上到下的相加

2)假設要減少時間複雜度,那麼可以使用填表法(之動態規劃法)

3)在此處可以設立乙個二維陣列來填表

1.所有的數字的總和為n(n+1)*0.5

2.從頂端到底部,只需要一次,時間複雜度為o(n^2)

二維陣列->o(n^2)

1.成功運用了填表法,實際進行了操作

2.理解動態規劃為什麼要用填表法->節省時間

3.動態規劃需要把每一條路都算出來t(n) ≥  1 + 2 t(n-k) = 1 +  2∑t(k)(...)

4.知道如何寫遞迴方程式

演算法第三章上機實踐報告

一 實踐題目 7 2 最大子段和 給定n個整數 可能為負數 組成的序列a 1 a 2 a 3 a n 求該序列如a i a i 1 a j 的子段和的最大值。當所給的整數均為負數時,定義子段和為0。要求演算法的時間複雜度為o n 輸入格式 輸入有兩行 第一行是n值 1 n 10000 第二行是n個整...

演算法第三章上機實踐報告

引論 這是第二次在演算法課上的上機實踐了,雖然逐漸有了思考演算法的感覺,但這一次上機實踐還是並不輕鬆。關鍵在於在實驗課前對第三章的知識掌握得還不足夠,經常會因為明明知道理論上如何解題而苦於無法將其實現。不過,通過本次上機實踐,我的收穫是非常豐富的,下面用實踐課題目中的第一題 數字三角形 開始分享我的...

演算法第三章上機實踐報告

1.實踐題目 給定n個整數 可能為負數 組成的序列a 1 a 2 a 3 a n 求該序列如a i a i 1 a j 的子段和的最大值。當所給的整數均為負數時,定義子段和為0。要求演算法的時間複雜度為o n 2.問題描述 題目要求時間複雜度為o n 所以只能用乙個for迴圈解決問題,要用到動態規劃...