演算法第三章

2022-04-29 04:18:22 字數 741 閱讀 6455

單調遞增最長子序列分析:

1.1:

i == 0時:dp[0] = 1;  

其餘情況: dp[i] = max( dp[i] , dp[ j ] + 1);  0 <= j < i;

1.2填表的維度: 一維

填表的範圍: dp[0] 到 dp[n-1]

填表順序:從左向右

1.3因為要以每乙個數字終點,然後從頭遍歷到他本身,所以時間複雜度位o(n^2)。

空間複雜度: 建立了兩個陣列大小為n,乙個儲存數字,乙個儲存以該數字為結尾的最大的遞增最長子序列長度

我覺得動態規劃裡面最難的就是要找到遞迴方程。動態規劃演算法通常用於求解具有某種最優性質的問題。在這類問題中,可能會有許多可行解。每乙個解都對應於乙個值,我們希望找到具有 最優值的解。動態規劃演算法與 分治法類似,其基本思想也是將待求解問題分解成若干個子問題,先求解子問題,然後從 這些子問題的解得到原問題的解。與分治法不同的是,適合於用動態規劃求解的問題,經分解得到子問題往往不是互相獨立的。若用分治法來解這類問題,則分解得到的子問題數目太多,有些子問題被重複計算了很多次。如果我們能夠儲存已解決的子問題的答案,而在需要時再找出已求得的答案,這樣就可以避免大量的重複計算,節省時間。我們可以用乙個表來記錄所有已解的子問題的答案。不管該子問題以後是否被用到,只要它被計算過,就將其結果填入表中。這就是動態規劃法的基本思路。具體的動態規劃演算法多種多樣,但它們具有相同的填**式。

結隊程式設計時我負責講解。這次我們兩個並沒有一開始就敲**,而是先討論出遞迴方程,效率提高了很多

《演算法》 第三章 查詢

在第三章裡面,並不是一開始就講的查詢,第一節中首先介紹的是符號表。符號表,其實就是儲存了鍵值對的一種資料結構,鍵值對用於將乙個鍵和乙個值聯絡起來。符號表支援兩種操作 插入 put 即將一組新的鍵值對存入表中 查詢 get 即根據給定的鍵得到對應的值。下面看一下書中關於符號表的應用以及api 書中對於...

第三章 演算法概述

3.5.1 模板語法 模板函式的模型和實現從乙個模板參數列開始。其語法包括關鍵字template,後面緊跟用角擴號括起來的形式型別的非空表在這個參數列中,每種型別前面都有關鍵字typename 不同的型別之間用逗號隔開。乙個模板型別的參數列 template 多個模板型別的參數列 template ...

演算法第三章總結

動態規劃演算法的理解 就是把乙個大問題變成很多個小問題,並通過求出小問題的最優解,利用他們的關係逐一求出其他問題的最優解。動態規劃應用於子問題重疊的情況 要去刻畫最優解的結構特徵 嘗試遞迴地定義最優解的值 就是我們常說的考慮從 i 1 i 1 轉移到 ii 計算最優解 利用計算出的資訊構造乙個最優解...