第十二章 動態規劃 2019 04 01

2021-09-14 07:45:19 字數 475 閱讀 4778

1、最優化原理,也就是最優子結構性質。這指的是乙個最優化策略具有這樣的性質,不論過去狀態和決策如何,對前面的決策所形成的狀態而言,餘下的諸決策必須構成最優策略。簡單來說就是乙個最優化策略的子策略總是最優的,如果乙個問題滿足最優化原理,就稱其具有最優子結構性質。

2、無後效性。指的是某狀態下決策的收益,只與狀態和決策相關,與到達該狀態的方式無關。

3、子問題的重疊性,動態規劃將原來具有指數級時間複雜度的暴力搜尋演算法改進成了具有多項式時間複雜度的演算法。其中的關鍵在於解決冗餘,這是動態規劃演算法的根本目的。

1、記憶搜尋就是某種形態的動態規劃方法

2、記憶話搜尋方法不關心到達某乙個遞迴過程的的路徑,知識單純地對計算過的遞迴過程進行記錄,避免重複的遞迴過程

3、動態規劃方法則是規定好每乙個遞迴過程的計算順序,一次進行計算,後面的計算過程嚴格依賴前面的計算過程

4、兩證都是空間換時間的方法,也都有列舉過程,區別就是動態規劃規定計算順序,而記憶搜尋不規定

第十二章 動態記憶體

程式除靜態記憶體和棧記憶體,還有自由空間 free store or 堆 heap 使用動態記憶體容易造成記憶體洩漏 忘記delete new分配的空間。share ptr類 模板。最好用make shared函式來分配記憶體。shared ptr p1 make shared shared ptr...

第十二章動態記憶體 allocator類

new和delete的兩部分操作 記憶體分配 釋放 和物件構造 析構 當分配一大塊記憶體時,我們計畫在這塊記憶體上按需構造物件,在此情況下希望記憶體分配和物件構造分離。這表示 我們可以分配大塊記憶體,但是只有真正需要時才執行物件建立操作 同時付出一定開銷 將記憶體分配和物件構造組合在一起可能會導致不...

c primer第十二章動態記憶體小結 12

第十二章 動態記憶體 1.動態記憶體 c 中,動態記憶體管理是通過一對運算子完成的 new和delete。c語言中通過malloc與free函式來實現先動態記憶體的分配與釋放,c 中new與delete的實現其實會呼叫malloc與free。由於 c 語言沒有自動記憶體 機制,每次 new 出來的記...