《數(shù)據(jù)結構與算法之美》復雜度分析(上):如何分析滓窍、統(tǒng)計算法的執(zhí)行效率和資源消耗 (讀后感)

什么是復雜度分析?

  1. 數(shù)據(jù)結構和算法解決的是如何讓計算機 更快卖词、更省空間的執(zhí)行。
  2. 因此需要從兩個方面評估數(shù)據(jù)結構和算法的優(yōu)越性吏夯。
  3. 分別用時間復雜度和空間復雜度兩個概念來描述性能問題,二者統(tǒng)稱為復雜度此蜈。
  4. 復雜度描述的是算法的執(zhí)行時間或者占用空間的大小與數(shù)據(jù)規(guī)模增長關系。

為什么需要復雜度分析?

  1. 和性能測試相比,復雜度分析有不依賴執(zhí)行環(huán)境裆赵、成本低、效率高跺嗽、易操作战授、指導性強。
  2. 掌握復雜度分析桨嫁,將能編寫出性能更優(yōu)的代碼植兰,有利于降低系統(tǒng)開發(fā)和維護成本。

如何進入復雜度分析璃吧?

大O表示法:就是在不用運行代碼的情況下楣导,用“肉眼” 得出一段代碼的執(zhí)行時間。

  1. 來源:算法的執(zhí)行時間與每行代碼的執(zhí)行次數(shù)成正比肚逸,用 T(n) = O(f(n)) 表示爷辙,其中 T(n) 表示算法執(zhí)行總時間,f(n) 表示代碼執(zhí)行總次數(shù)朦促,而 n 往往表示數(shù)據(jù)的規(guī)模膝晾。
  2. 特點:以時間復雜度為例,由于時間復雜度描述的是算法執(zhí)行時間與數(shù)據(jù)規(guī)模的增長變化趨勢务冕,所以“常量階”血当、低階、系數(shù)實際上對這種趨勢不產(chǎn)生決定性影響禀忆,所以在做時間復雜度分析時可以忽略這些項臊旭;只需要記錄一個最大量級就可以了。
  3. 大O 時間復雜度并不是實際代碼真正的運行時間箩退,而是表示代碼執(zhí)行時間歲數(shù)據(jù)規(guī)模增長的變化趨勢离熏;所以時間復雜度也叫 進時間復雜度

總結:所有代碼的執(zhí)行時間 T(n) 與每行代碼的執(zhí)行次數(shù)n成正比; 總結公式: T(n) = O(f(n))

時間復雜度分析

  1. 只關注循環(huán)次數(shù)最多的一段代碼戴涝。
  2. 加法法則:總復雜度等于量級最大的那段代碼的復雜度; 總結公式: T1(n)=O(f(n))滋戳,T2(n)=O(g(n))钻蔑;那么 T(n)=T1(n)+T2(n)=max(O(f(n)), O(g(n))) =O(max(f(n), g(n)))
  3. 乘法法則: 嵌套代碼的復雜度等于嵌套內(nèi)外代碼復雜度的乘積; 總結公式: T(n)=T1(n)T2(n)=O(f(n))O(g(n))=O(f(n)*g(n))
  4. 多規(guī)模求加法: 比如方法有兩個參數(shù)控制兩個循環(huán)的次數(shù),那么這時就取二者復雜度相加奸鸯。

復雜度量級(按數(shù)量級遞增)

  • 多項式階

    • 常量階 O(1)
    • 對數(shù)階 O(logn)
    • 線性階 O(n)
    • 線性對數(shù)階 O(nlogn)
    • 平方階 O(n2)咪笑、立方階 O(n3) ... k 次階 O(nk)
  • 非多項式

    • 指數(shù)階 O(2n)
    • 階乘階 O(n!)

復雜度量級

空間復雜度分析

空間和復雜度和時間復雜度分析方法基本類似,表示算法的存儲空間與數(shù)據(jù)規(guī)模之間的增長關系娄涩。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窗怒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蓄拣,更是在濱河造成了極大的恐慌扬虚,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弯蚜,死亡現(xiàn)場離奇詭異孔轴,居然都是意外死亡剃法,警方通過查閱死者的電腦和手機碎捺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贷洲,“玉大人收厨,你說我怎么就攤上這事∮殴梗” “怎么了诵叁?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長钦椭。 經(jīng)常有香客問我拧额,道長,這世上最難降的妖魔是什么彪腔? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任侥锦,我火速辦了婚禮,結果婚禮上德挣,老公的妹妹穿的比我還像新娘恭垦。我一直安慰自己,他們只是感情好格嗅,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布番挺。 她就那樣靜靜地躺著,像睡著了一般屯掖。 火紅的嫁衣襯著肌膚如雪玄柏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天贴铜,我揣著相機與錄音粪摘,去河邊找鬼右蒲。 笑死,一個胖子當著我的面吹牛赶熟,可吹牛的內(nèi)容都是我干的瑰妄。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼映砖,長吁一口氣:“原來是場噩夢啊……” “哼间坐!你這毒婦竟也來了?” 一聲冷哼從身側響起邑退,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤竹宋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后地技,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜈七,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年莫矗,在試婚紗的時候發(fā)現(xiàn)自己被綠了飒硅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡作谚,死狀恐怖三娩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情妹懒,我是刑警寧澤雀监,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站眨唬,受9級特大地震影響会前,放射性物質發(fā)生泄漏。R本人自食惡果不足惜匾竿,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一瓦宜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搂橙,春花似錦歉提、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至废离,卻和暖如春侄泽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蜻韭。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工悼尾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留柿扣,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓闺魏,卻偏偏與公主長得像未状,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子析桥,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 她的世界戒備森嚴 一只蒼蠅難以插足 外面的世界不斷鼓噪 有病的人司草,快快放下吊橋 給你現(xiàn)實的湯藥 她努力望向現(xiàn)實 未...
    風之子的黃昏閱讀 311評論 1 13
  • 想出去旅游
    頹廢的女孩閱讀 90評論 0 0
  • 杏花開的時候,是在夜里泡仗,伴著蛙聲開了埋虹,和著月色開了,又恰恰撞了清明娩怎,香了這四月天搔课。這杏花開的倔強,你來或是不來截亦,...
    彥苣閱讀 627評論 0 0
  • 姐要去給外甥矯正牙爬泥,正好我也有牙不舒服,搭順風車也去了魁巩。 歲月不饒人急灭,衰老是從各個方面開始的,包括牙谷遂。這...
    多嬲閱讀 135評論 0 0
  • 我爸很喜歡種些花花草草肾扰,前些年,他往家里搬回來棵芒果樹苗蛋逾,種在家門口集晚。按我媽的話說,他把那樹苗當孩子一樣養(yǎng)区匣。 每天...
    哆啦有只大兔子閱讀 514評論 1 6