演算法第一篇之概念

akbarken發表於2014-09-11

1.  演算法是什麼

演算法:一種計算的方法,在程式設計上,表現為一組指令序列。 

輸入->演算法->輸出

2.  如何評價演算法


對於程式設計而言,無非就是兩個方面:演算法有多快?(時間效率);記憶體耗得多不多?(空間效率)
演算法的複雜度分析,包括上述兩個方面,各自稱為時間複雜度分析和空間複雜度分析。通常我們更關注的是演算法的時間複雜度。 

設問題規模為n,即輸入資料的大小,時間複雜度記為T(n)
比如n個輸入資料,需要做2*n個基本運算,那麼T(n) = 2*n

漸進時間複雜度

比如:     T(n) = 2*n        則O(n)=n,     實際中就稱演算法時間複雜度為n

                   T(n)= 3*n2           則O(n)=n2,  實際中就稱演算法時間複雜度為n2

T(n) =3* log(n)則O(n)=log(n),    實際中就稱演算法時間複雜度為log(n)

空間複雜度分析 

分析演算法執行過程中所佔用儲存空間大小,其分析和時間複雜度類似。

如果使用1個基本空間單位,則空間複雜度為O(1)

如果使用n個基本空間單位,則空間複雜度為O(n)

這裡說的空間複雜度實際中也是漸進空間複雜度。






相關文章