算法——大O表示法

定義:一種特殊的表示法,指出了算法的速度有多快。用于表示運(yùn)行時間如何隨列表增長而增加。

場景:例如,假設(shè)列表包含N個元素。簡單查找需要檢查每個元素,因此需要執(zhí)行N次操作。使用大O表示法,這個運(yùn)行時間為O(n)。如果使用二分法的話,需要執(zhí)行l(wèi)ogN,使用大O表示法,就是O(logN).

以下從快到慢列出經(jīng)常會遇到的5種大O運(yùn)行時間:

O(logN),也叫對數(shù)時間,這樣的算法包括二分查找。

O(N),也叫線性時間,這樣的算法包括簡單查找。

O(n*logN),快速排序。

O(N*N),選擇排序。

O(N!),旅行商問題的解決方案。

Ps:大O表示法指出了最糟糕情況下的運(yùn)行時間;大O表示法讓你能夠比較操作數(shù),它指出了算法運(yùn)行時間的增速;算法的速度指的并非時間,而是操作數(shù)的增速;談?wù)撍惴ǖ乃俣葧r,我們說的是隨著輸入的增加,其運(yùn)行時間將以什么樣的速度增加;O(logN)比O(N)快,當(dāng)需要搜索的元素越多時,前者比后者快得越多。

參考自:算法圖解

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 算法就是完成任務(wù)的一組指令,任何代碼片段都可以說是算法。當(dāng)然我們這里討論的算法指是那些特別有趣的,比如速度...
    小貓仔閱讀 1,471評論 0 0
  • 定義: 大O表示法是一種特殊的表示法,其用來指出算法的速度有多塊 注意:大O表示法指出了最糟糕情況下的運(yùn)行時間...
    0愛上1閱讀 881評論 0 0
  • 料到遲早會來,長潭路的老房子會被賣掉,這里保存著的是爺爺奶奶和我一切的生活痕跡。 雖然奶奶去世了,然而我依舊希望留...
    感性的羊駝閱讀 456評論 6 0
  • 古代史詩人詩中寫故事有小鳥,新代詩人里看樹枝上頭有小鳥叫。小鳥之中必有古代史詩人來欣賞它,小鳥之中也有新代詩人來逗它。
    王密亮閱讀 155評論 0 0

友情鏈接更多精彩內(nèi)容