1. 程式人生 > >MIT演算法導論第一節筆記

MIT演算法導論第一節筆記

演算法分析——研究效能和資源利用的

演算法設計

什麼比效能更重要?

為什麼要學習演算法?

1. 解決最前沿的東西(重複十年前的東西,一般不需要演算法);

2. 是更好使用者體驗的基礎,更好安全性的保障;

3. 效能是最底層的東西,相當於“貨幣”;

4.有趣。

虛擬碼的好處:使演算法描述簡潔,易書寫。

三種演算法分析:

最壞時間分析——執行的上界,使用者承諾時間

平均時間分析(需要假設統計分佈)

最好時間分析——沒什麼用

漸近分析:去掉與機器相關的常量,關注時間增長。

排序問題:

插入排序:與輸入的情況有關(如:已經排好序)

                  與輸入規模有關

                  當N很小時,快;N較大時,慢

歸併排序:當N大於30時,快

用遞迴樹方法得到遞迴算式的界值。

只學習演算法分析並不能成為程式設計高手,還要結合工程實際(什麼時候問題與演算法相關,什麼時候不相關)

個人總結:MIT的課程讓人感覺講的讓人明白,不僅講了什麼,還講了為什麼,這樣做的好處及不足是什麼。