在計算機科學中,算法的時間複雜度是一個函數,它定性描述該算法的運行時間。這是一個表明算法輸入值的字符串的長度的函數。時間複雜度經常使用大O符號表述,不包括這個函數的低階項和首項係數。使用這種方式時,時間複雜度可被稱爲是漸近的,亦即考察輸入值大小趨近無窮時的狀況。算法
名稱 | 運行時間 T(n) | 算法舉例 |
---|---|---|
常數時間 | O(1) | 判斷一個二進制數的奇偶 |
對數時間 | O(log n) | 二分搜索 |
線性時間 | O(n) | 無序數組的搜索 |
線性對數時間 | O(nlog n) | 最快的比較排序 |
二次時間 | O(n^2) | 冒泡排序、插入排序 |
常見的算法時間複雜度由小到大依次爲:Ο(1)<Ο(logn)<Ο(n)<Ο(nlogn)<Ο(n2)<Ο(n3)<…<Ο(2n)<Ο(n!) 注:儘量選用多項式階O(nk)的算法(即P問題)數組