定義:一種特殊的表示法芳誓,指出了算法的速度有多快余舶。用于表示運行時間如何隨列表增長而增加。
場景:例如锹淌,假設列表包含N個元素匿值。簡單查找需要檢查每個元素,因此需要執(zhí)行N次操作赂摆。使用大O表示法挟憔,這個運行時間為O(n)。如果使用二分法的話烟号,需要執(zhí)行l(wèi)ogN绊谭,使用大O表示法,就是O(logN).
以下從快到慢列出經(jīng)常會遇到的5種大O運行時間:
O(logN),也叫對數(shù)時間汪拥,這樣的算法包括二分查找达传。
O(N),也叫線性時間,這樣的算法包括簡單查找。
O(n*logN)趟大,快速排序鹤树。
O(N*N),選擇排序。
O(N!),旅行商問題的解決方案逊朽。
Ps:大O表示法指出了最糟糕情況下的運行時間;大O表示法讓你能夠比較操作數(shù)罕伯,它指出了算法運行時間的增速;算法的速度指的并非時間,而是操作數(shù)的增速;談論算法的速度時叽讳,我們說的是隨著輸入的增加追他,其運行時間將以什么樣的速度增加;O(logN)比O(N)快,當需要搜索的元素越多時岛蚤,前者比后者快得越多邑狸。
參考自:算法圖解