快速排序方法的時間復(fù)雜度為O?
O(1): 表示算法的運(yùn)行時間為常量
O(n): 表示該算法是線性算法
O(㏒2n): 二分查找算法
O(n2): 對數(shù)組進(jìn)行排序的各種簡單算法,例如直接插入排序的算法。
O(n3): 做兩個n階矩陣的乘法運(yùn)算
O(2n): 求具有n個元素集合的所有子集的算法
O(n!): 求具有N個元素的全排列的算法
O(n?表示當(dāng)n很大的時候,復(fù)雜度約等于Cn玻珻是某個常數(shù),簡單說就是當(dāng)n足夠大的時候,n的線性增長,復(fù)雜度將沿平方增長。
一個算法執(zhí)行所耗費(fèi)的時間,從理論上是不能算出來的,必須上機(jī)運(yùn)行測試才能知道。但我們不可能也沒有必要對每個算法都上機(jī)測試,只需知道哪個算法花費(fèi)的時間多,哪個算法花費(fèi)的時間少就可以了。并且一個算法花費(fèi)的時間與算法中語句的執(zhí)行次數(shù)成正比例,哪個算法中語句執(zhí)行次數(shù)多,它花費(fèi)時間就多。一個算法中的語句執(zhí)行次數(shù)稱為語句頻度或時間頻度。記為T(n)。
一般情況下,算法中基本操作重復(fù)執(zhí)行的次數(shù)是問題規(guī)模n的某個函數(shù),用T(n)表示,若有某個輔助函數(shù)f(n),使得當(dāng)n趨近于無窮大時,T(n)/f(n)的極限值為不等于零的常數(shù),則稱f(n)是T(n)的同數(shù)量級函數(shù)。記作T(n)=O(f(n)),稱O(f(n))
為算法的漸進(jìn)時間復(fù)雜度,簡稱時間復(fù)雜度。