演算法
演算法: 演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示一個或多個操作。
演算法的特性:
- 輸入輸出:演算法具有零個或多個輸入,至少有一個或多個輸出
- 有窮性:演算法在執行完成 之後,自動退出而不會出現無限迴圈,並且每一個步驟在可接受的時間內完成
- 確定性:每一步驟都具有確定的含義
- 可行性:演算法每一步必須都是可行的
演算法時間複雜度
在進行演算法分析時,語句總的執行次數T(n)是關於問題規模n的函式,進而分析T(n)隨n的變化情況並確定T(n)的數量級。演算法的時間複雜度,也就是演算法的時間量度,記作:T(n) = O(f(n))。它表示隨問題n的增大,演算法執行時間的增長率和f(n)的增長率相同,稱作演算法的漸近時間複雜度,簡稱時間複雜度。其中,f(n)是問題規模n的某個函式。
時間複雜度常用的非正式術語:常數階,線性階,平方階,對數階,nlong階,立方階,指數階。