亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

bigO,你如何計算/近似它?

bigO,你如何計算/近似它?

bigO,你如何計算/近似它?大多數擁有CS學位的人肯定會知道Big O代表什么。它可以幫助我們衡量算法的實際效率(如何),如果你知道你試圖解決的問題屬于哪個類別,你可以弄清楚是否仍然可以擠出那么少的額外性能。1但我很好奇,你如何計算或近似算法的復雜性?
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

小提示:big O符號用于表示漸近復雜度(即,當問題的大小增長到無窮大時),并且它隱藏了一個常量。

這意味著在O(n)中的算法和O(n 2)中的算法之間,最快的并不總是第一個(盡管總是存在n的值,使得對于大小> n的問題,第一個算法是最快的)。

請注意,隱藏常量很大程度上取決于實現!

此外,在某些情況下,運行時不是輸入大小 n的確定性函數。例如,使用快速排序進行排序:對n個元素的數組進行排序所需的時間不是常量,而是取決于數組的起始配置。

有不同的時間復雜性:

  • 最壞的情況(通常最簡單的解決,但并不總是非常有意義)

  • 平均情況(通常更難以弄清楚...)

  • ...

一個很好的介紹是R. Sedgewick和P. Flajolet 的算法分析導論

正如您所說,premature optimisation is the root of all evil并且(如果可能的話)在優化代碼時應始終使用分析。它甚至可以幫助您確定算法的復雜性。


查看完整回答
反對 回復 2019-05-24
  • 3 回答
  • 0 關注
  • 1072 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號