大話資料結構第二章學習筆記

2021-09-13 16:33:36 字數 754 閱讀 5164

演算法;

資料結構與演算法的關係:

演算法是什麼?指令的有限序列,每條指令表示乙個或多個操作。演算法能輸入輸出,能自動結束不會無限迴圈,而且每乙個步驟在可接受的時間內完成。

好的演算法什麼正確可讀健壯都不算什麼,最重要的是時間效率高和儲存量低。

怎麼衡量演算法的效率啊?

事前分析估算的方法 :時間取決於演算法採用的策略、方法。編譯產生**的質量,問題的輸入規模。 機器執行指令的速度。

測定執行時間最可靠的方法就是計算對執行時間有消耗操作的執行次數。

函式的漸進增長:給定兩個函式f和g 如果存在乙個整數n 使得對於所有的n>n f總是增長比g大,那麼我們說f的增長漸進快於g

與最高次項相乘的常數並不重要。

最高次項的指數大的,函式隨著n的增長,結果也會變得增長的特別快

判斷乙個演算法的效率的時候,函式中的常數和其他次要項常常可以忽略,而更應該關注主項的階數。

這個都只是簡單的初步判斷,需要進一步計算演算法時間複雜度。

用大o記法。

怎麼推導大o階方法:就看執行幾次計算,如果是常數次 那就回o(1)

首先用常數1取代執行時間中的所有加法常數

然後在修改後的執行次數函式中,只保留最高端項

如果最高端項存在並且不是1,則去除與這個項相乘的常數

常見時間複雜度所消耗的時間從小到大依次是:

o(1)我們總是說演算法的時間複雜度,但是我們也需要看演算法的空間複雜度,計算公式為:s(n)=o(f(n)) n是問題的規模,f(n)為語句關於n所佔儲存空間的函式。

《大話資料結構》學習筆記 第二章 演算法

本學習筆記 將使用c 重寫。public void method1 console.writeline sum public void method2 演算法 是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。1 輸入輸出 演算法具有零個或多個輸入。演算法...

《大話資料結構》筆記 第二章 演算法(下)

給定兩個函式 f n 和 g n 如果存在乙個整數 n,使得對於所有的 n n,f n 總大於 g n 那麼我們說 f n 的增長漸近快於 g n 例如,演算法 a 要 2n 3 次操作,而演算法 b 要 3n 1 次。隨著 n 的增大,比較執行次數時,我們可以忽略加法常數。再例如,演算法 c 是 ...

老楊《大話資料結構》第二章 演算法

演算法是解決特定問題求解步驟的描述,計算機中表現為指令的有限序列,每條指令表示乙個或者多個操作。輸入輸出 有窮性確定性 可行性正確性 可讀性健壯性 時間效率高和儲存量低 事後統計方法 事前分析估計方法 通過書中所給1 2 99 100的例子,可以明顯對比出幾種不同演算法具有不同的空間和時間開銷。某個...