code

2016年11月22日 星期二

Algorithms筆記14 - Master Theorem

Master theorem是用來快速估計一個能寫成recurrence relation的演算法的running time,就是一個被證明的公式:




舉例來說,之前的naiive multiplication algorithm的recurrence relations如下,用master theorem分析之:



改良過的karatsuba乘法,將subproblem減少成只有三個,所以a = 3,用master theorem分析如下:


大約是O(n^1.58),這不是常數倍數的改良,是指數的改良,相當的好。

如果有人能把乘法演算法改成只有2個subproblem呢?事實上目前沒發現過,不過這個recurrence relations就是merge sort的特徵:


所以目前sorting最好的running time只能是O(nlogn)。


這個是什麼?沒錯,就是Binary search:



沒有留言:

張貼留言