演算法第三章作業

2022-07-09 22:45:11 字數 586 閱讀 5281

填表法中表的維度:一維;

填表範圍:0~n;

填表順序:自左向右。

時間複雜度:o(n^2)

空間複雜度:o(n)

動態規劃演算法與分治法類似,其基本思想是將待求解問題分解成若干子問題,先求問題,再結合這些子問題的解得到原問題的解。

與分治法不同的是,適合用動態規劃法動的問題經分解得到的子問題往往不是互相獨立的。若用分治法來解這類問題,則分解得

到子問題數目太多,以致最後解決原問題需要耗費指數級時間。然而,不同子問題的數目常只有多項式量級。在用分治法求解時,

有些子問題被重複計算了許多次。如果能夠儲存動決的子問題的答案,在需要時再找出已求得的答案,這樣可以避免大量的重複

計算,從面到多項式時間演算法。為了達到此目的,可以用乙個表來記錄所有已解決的子問題的答案管該子問題以後是否被用到,

只要它被計算過,就將其結果填入表中。這就是動態規地基本思想。具體的動態規劃演算法多種多樣,但它們具有相同的填**式。

我的結對程式設計夥伴是陳億謀。在結對程式設計的過程中,他負責敲打**,我負責監督指導。

在程式設計開始時,我們先各自思考,然後再一起討論,選擇最佳的方案進行實踐。

演算法第三章作業

1.動態規劃是一種能夠減少重複運算的一種演算法,比較適合原問題能依賴於子問題解得,而子問題也能夠依賴於子子問題解得而出的問題。其次,動態規劃更適合於資料量較多的時候的一種演算法,當資料量沒有到達一定規模的時候,動態規劃演算法不能夠體現出足夠的優勢。如對於揹包問題的貪心演算法和動態規劃法 2.1 單調...

演算法第三章作業

我覺得動態規劃是一種分治法的偽高階型,它將乙個大問題可以分成若干個小問題後,解決子問題,然後將子問題的解插入到乙個表中,用乙個表來記錄所有的已經得到答案的子問題的解,後面就可以發現,無論子問題的解是否被用到,其都在表中,接著求問題便可以節省大量的時間。3 1m i 1 n 1 m i max 1 1...

演算法第三章作業

組員 高珞洋,何汶珊 之前在學習分治法的時候也有將其和動態規劃進行比較,動態規劃能夠解題的根本要求是原問題可以細分成子問題,且原問題的最優解必包含子問題的最優解。為了更明確上述條件,從而保證題目能夠運用動態規劃求解,通常需要兩步操作 明確問題具有最優子結構,並分解問題 找出遞推關係式 狀態轉移方程 ...