讀書筆記 算法 algorithms 第一章 時間複雜度 馬士兵解析

書上寫的太複雜了,不深讀文章不容易理解. 看馬士兵的視頻容易理解些.

如何測算算法的優劣:

時間測算

  1. 計算算法的時間差
  2. 幅度不夠循環來湊(時間少看不出算法的差別 就使用循環加大幅度)

時間複雜度

空間測算

  1. 看使用空間的大小

空間複雜度.

Big O 標記法

學術上算法區分算法的優劣

時間隨着問題規模的擴大 時間怎麼進行變化的
空間同理

  1. 不考慮必須要的操作. 循環, 賦初值, 程序初始化,
  • 比如訪問數組的最後一個值花的時間, 不隨着數組的規模擴大而擴大, 這時時間複雜度是 O(1). 時間是固定的一個值.
  1. 不考慮常數項. 2n 到 n
  • 比如 訪問鏈表的某個位置的值花的時間. (一般時間複雜度我們都是講的"最差"情況), 那麼假設鏈表的規模是n, 那麼時間複雜度就是O(n).
    如果用圖表來表示
    圖

當問題規模在1的時候,時間是1. 當問題規模是2的時候, 時間是2.

下面是算法書裏面的圖解

QQ圖片20190427190716

分爲標準圖像 和對數圖像. 我上面畫的和對數圖像是一致的.

當然時間複雜度還有O(n2),O(n3) ,n的平方(兩遍循環),n的立方(三遍循環).

  • 求數組的內所有數字的平均數是什麼. 想一想…
  • O(n)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章