Complexity
課堂補充
by zolution2018/03/10
常見量級比較
常見量級比較
量級?
1000𝑛 $ vs 0.01𝑛 &
量級?
常數的力量
量級?
(𝑙𝑜𝑔𝑛) ,-- vs 𝑛 -..
量級?
理論的力量
想一想……
• 複雜度的全名實際上是「漸近複雜度」,你覺得是為什麼呢?(提示:跟漸近線有點關係)
• 複雜度評估有什麼關鍵的壞處?總是選擇複雜度低的方式就一定好嗎?
• 上次上課時介紹了質數的檢測方式以及優化。試著分析一下複雜度各是多少吧!(篩法除外,
數學成份過重)
• 𝑂 𝑓 𝑛 + 𝑔 𝑛 = 𝑂(max 𝑓 𝑛 , 𝑔 𝑛 ),其中 max 函數會取其中量級較大的函數。這是 為什麼呢?
• 若 𝑔1 𝑛 = 𝑂 𝑓1 𝑛 , 𝑔2 𝑛 = 𝑂(𝑓2 𝑛 ),那麼 𝑔1(𝑛) ∗ 𝑔2(𝑛) = 𝑂(𝑓1(𝑛) ∗ 𝑓2(𝑛)),這是 為什麼呢?
• 實務中,如果一個算法空間複雜度很高但時間複雜度較低,另一個算法時間複雜度很高但 空間複雜度較低,哪一個算法在小範圍的時候比較實際?哪一個算法大範圍的時候比較實 際?為什麼?
想一想……
𝑂(𝑛 $ ), 𝑂(𝑛 . )
𝑂(𝑛 . ), 𝑂(𝑛 vs $ )
想一想……
空間有限
Big O Formal Def.
Big O Formal Proof
If f(n) = O(i(n)), g(n) = O(j(n)), then
f(n) + g(n) = O(i(n) + j(n))
Big O Challenge Discussion
• 𝑓 𝑛 = 𝑂 𝑖 𝑛 , 𝑔 𝑛 = 𝑂 𝑗 𝑛
è 𝑓 𝑛 − 𝑔 𝑛 = 𝑂 𝑖 𝑛 − 𝑗 𝑛
• 𝑂 𝑓 𝑛 + 𝑔 𝑛 = 𝑂(max 𝑓 𝑛 , 𝑔 𝑛 )