復(fù)雜度分析總結(jié)

一、什么是復(fù)雜度分析派撕?
1.數(shù)據(jù)結(jié)構(gòu)和算法解決是“如何讓計算機更快時間废麻、更省空間的解決問題”。
2.因此需從執(zhí)行時間和占用空間兩個維度來評估數(shù)據(jù)結(jié)構(gòu)和算法的性能列林。
3.分別用時間復(fù)雜度和空間復(fù)雜度兩個概念來描述性能問題瑞你,二者統(tǒng)稱為復(fù)雜度。
4.復(fù)雜度描述的是算法執(zhí)行時間(或占用空間)與數(shù)據(jù)規(guī)模的增長關(guān)系希痴。
二者甲、為什么要進行復(fù)雜度分析?
1.和性能測試相比润梯,復(fù)雜度分析有不依賴執(zhí)行環(huán)境过牙、成本低、效率高纺铭、易操作寇钉、指導(dǎo)性強的特點。
2.掌握復(fù)雜度分析舶赔,將能編寫出性能更優(yōu)的代碼扫倡,有利于降低系統(tǒng)開發(fā)和維護成本。
三、如何進行復(fù)雜度分析撵溃?
1.大O表示法
1)來源
算法的執(zhí)行時間與每行代碼的執(zhí)行次數(shù)成正比疚鲤,用T(n) = O(f(n))表示,其中T(n)表示算法執(zhí)行總時間缘挑,f(n)表示每行代碼執(zhí)行總次數(shù)集歇,而n往往表示數(shù)據(jù)的規(guī)模。
2)特點
以時間復(fù)雜度為例语淘,由于時間復(fù)雜度描述的是算法執(zhí)行時間與數(shù)據(jù)規(guī)模的增長變化趨勢诲宇,所以常量階、低階以及系數(shù)實際上對這種增長趨勢不產(chǎn)決定性影響惶翻,所以在做時間復(fù)雜度分析時忽略這些項姑蓝。
2.復(fù)雜度分析法則
1)單段代碼看高頻:比如循環(huán)。
2)多段代碼取最大:比如一段代碼中有單循環(huán)和多重循環(huán)吕粗,那么取多重循環(huán)的復(fù)雜度纺荧。
3)嵌套代碼求乘積:比如遞歸、多重循環(huán)等
4)多個規(guī)模求加法:比如方法有兩個參數(shù)控制兩個循環(huán)的次數(shù)颅筋,那么這時就取二者復(fù)雜度相加宙暇。
四、常用的復(fù)雜度級別议泵?
多項式階:隨著數(shù)據(jù)規(guī)模的增長客给,算法的執(zhí)行時間和空間占用,按照多項式的比例增長肢簿。包括靶剑,
O(1)(常數(shù)階)、O(logn)(對數(shù)階)池充、O(n)(線性階)桩引、O(nlogn)(線性對數(shù)階)、O(n2)(平方階)收夸、O(n3)(立方階)
非多項式階:隨著數(shù)據(jù)規(guī)模的增長坑匠,算法的執(zhí)行時間和空間占用暴增,這類算法性能極差卧惜。包括厘灼,
O(2^n)(指數(shù)階)、O(n!)(階乘階)

五咽瓷、復(fù)雜度分析的4個概念
1.最壞情況時間復(fù)雜度:代碼在最理想情況下執(zhí)行的時間復(fù)雜度设凹。
2.最好情況時間復(fù)雜度:代碼在最壞情況下執(zhí)行的時間復(fù)雜度。
3.平均時間復(fù)雜度:用代碼在所有情況下執(zhí)行的次數(shù)的加權(quán)平均值表示茅姜。
4.均攤時間復(fù)雜度:在代碼執(zhí)行的所有復(fù)雜度情況中絕大部分是低級別的復(fù)雜度闪朱,個別情況是高級別復(fù)雜度且發(fā)生具有時序關(guān)系時,可以將個別高級別復(fù)雜度均攤到低級別復(fù)雜度上》茏耍基本上均攤結(jié)果就等于低級別復(fù)雜度锄开。

六、為什么要引入這4個概念称诗?
1.同一段代碼在不同情況下時間復(fù)雜度會出現(xiàn)量級差異萍悴,為了更全面,更準確的描述代碼的時間復(fù)雜度寓免,所以引入這4個概念退腥。
2.代碼復(fù)雜度在不同情況下出現(xiàn)量級差別時才需要區(qū)別這四種復(fù)雜度。大多數(shù)情況下再榄,是不需要區(qū)別分析它們的。

七享潜、如何分析平均困鸥、均攤時間復(fù)雜度?
1.平均時間復(fù)雜度
代碼在不同情況下復(fù)雜度出現(xiàn)量級差別剑按,則用代碼所有可能情況下執(zhí)行次數(shù)的加權(quán)平均值表示疾就。
2.均攤時間復(fù)雜度
兩個條件滿足時使用:
1)代碼在絕大多數(shù)情況下是低級別復(fù)雜度,只有極少數(shù)情況是高級別復(fù)雜度艺蝴;
2)低級別和高級別復(fù)雜度出現(xiàn)具有時序規(guī)律猬腰。均攤結(jié)果一般都等于低級別復(fù)雜度。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末猜敢,一起剝皮案震驚了整個濱河市姑荷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缩擂,老刑警劉巖鼠冕,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胯盯,居然都是意外死亡懈费,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門博脑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來憎乙,“玉大人,你說我怎么就攤上這事叉趣∨⒈撸” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵疗杉,是天一觀的道長繁堡。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么椭蹄? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任闻牡,我火速辦了婚禮,結(jié)果婚禮上绳矩,老公的妹妹穿的比我還像新娘罩润。我一直安慰自己,他們只是感情好翼馆,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布割以。 她就那樣靜靜地躺著,像睡著了一般应媚。 火紅的嫁衣襯著肌膚如雪严沥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天中姜,我揣著相機與錄音消玄,去河邊找鬼。 笑死丢胚,一個胖子當(dāng)著我的面吹牛翩瓜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播携龟,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼兔跌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了峡蟋?” 一聲冷哼從身側(cè)響起坟桅,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蕊蝗,沒想到半個月后桦卒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡匿又,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年方灾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碌更。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡裕偿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出痛单,到底是詐尸還是另有隱情嘿棘,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布旭绒,位于F島的核電站鸟妙,受9級特大地震影響焦人,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜重父,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一花椭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧房午,春花似錦矿辽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至折柠,卻和暖如春宾娜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扇售。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工前塔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缘眶。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像髓废,于是被迫代替她去往敵國和親巷懈。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

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