Python演算法:Counting 101

發表於2015-05-20

原書主要介紹了一些基礎數學,例如排列組合以及遞迴迴圈等,但是本節只重點介紹計算演算法的執行時間的三種方法

因為本節內容都很簡單,所以我只是瀏覽了一下,重要的只有計算演算法的執行時間的三種方法:1.代換法; 2.遞迴樹法; 3.主定理法。

1.代換法

代換法一般是先猜測解的形式,然後用數學歸納法來證明它

下面是演算法導論中的一個求解例子

有意思的是,還有一類問題可以通過變數替換變成容易求解的形式

下面是常用的一些遞迴式以及它們對應的結果還有實際演算法例項

2.遞迴樹法

這種方法就是通過畫遞迴樹,然後對每層進行求和,最後將每層的結果相加得到對總的演算法執行時間的估計

3.主定理法

這種方法大家最喜歡,給出了一種就像是公式一樣的結論,雖然它沒有覆蓋所有的情況,而且證明非常複雜,但是很多情況下都是可以直接使用的,還有,需要注意主定理的不同情況下的條件,尤其是多項式大於和多項式小於!


不喜歡本節的可以跳過,不留練習了這次,嘿嘿,想練習的話刷演算法導論的題目吧

相關文章