Heapsort / Transform and Conquer-week7

7.1 heap -13

heap 是complete binary tree
子節(jié)點的數(shù)值不能大于它的父節(jié)點保證heap的根節(jié)點是最大的元素谆构,稱為max-heap
priority queues is a set (or pool) of elements

13-10

用array來存儲heap時
13-18 i節(jié)點的子節(jié)點是2i和2i+1略荡,H[i]<=H[i/2]

  • H[1]是最大的數(shù)莱睁,eject的時間復(fù)雜度是O(1)+重新存儲heap的時間
  • heap的高是log2(n)的向下取整锅睛,樹的高是log2(n)的向下取整忽舟,空樹高為-1.
  • heap的parents節(jié)點為1 到n/2向下取整
7.1.1Injecting a New Item

1.Place the new item at the end; 將要加的節(jié)點添入末尾
2.let it “climb up”, repeatedly swapping with parents that are smaller讓其與較小的父節(jié)點對換使其攀升
3.This process has Ο(log n) complexity

7.1.2Building a Heap Bottom-Up

若此方法在已經(jīng)構(gòu)造好的heap上使用,不是新構(gòu)造heap日川,時間復(fù)雜度為O(n)

13-38

1.從最后一個父節(jié)點開始往前移
2.先找出最大的子節(jié)點
3.再將父節(jié)點與子節(jié)點比較蔓腐,若小于則將子節(jié)點的值換到父節(jié)點的位置上,但父節(jié)點的值先不變龄句,只有引用在變
4.直至父節(jié)點移動到正確的位置回论,在將父節(jié)點的值賦予引用的位置

full tree:number of nodes n=2^(h+1)-1
number of nodes at level i: 2^(h-i)
i為從下往上數(shù)的層數(shù),leaves是level0分歇,root是level h

13-47 具體見筆記

若此方法用于構(gòu)造一個新的heap

  • use the inject operation repeatedly. 用inject n-1次
  • the construction cost will be Ο(nlog n)
7.1.3 Ejecting a Maximal Element from a Heap

1.調(diào)換root節(jié)點和最后一個節(jié)點
2.對最后一個節(jié)點sift-down到正確的位置
3.被調(diào)換到最后的root節(jié)點不在是heap的一部分傀蓉,n遞減
時間復(fù)雜度為Ο(logn)

7.2 Heapsort(Build and Then Deplete a Heap)

1.將array變?yōu)镠eap
2.應(yīng)用eject n-1次

總結(jié)
1.heapsort時間復(fù)雜度為 Θ(n log n)
2.heapsort不stable,是in-place的
3.平均時間復(fù)雜度比quicksort慢卿樱,但性能更有保證
4.單個節(jié)點的增加與刪除復(fù)雜度都是Ο(logn)
5.在已有heap中排序復(fù)雜度是Ο(n)僚害,新建一個heap的復(fù)雜度是Ο(nlogn)

6.heapsort是先將數(shù)組的數(shù)字導(dǎo)入后再排序,不是直接建立一個heap

7.3Transform and Conquer-14

轉(zhuǎn)換:將問題修改為更易于處理的形式繁调,然后
征服:解決它使用已知的有效算法。

  • 主要變量:
    Instance simplification簡化實例
    Representational change表征變化
    Problem reduction 問題減少
7.3.1 Instance Simplification

一般原則:試著通過一些預(yù)處理靶草,特別是排序蹄胰,來簡化問題。
一下問題可以預(yù)先對輸入進行排序來加快速度奕翔,例如:

  • Finding the median找到中位數(shù)
  • Uniqueness checking唯一性檢查
  • Finding the mode找到眾數(shù)
    14-7 各算法對比

    問題1:Uniqueness Checking
    判斷array的數(shù)是否唯一
    如果使用brute-force時間復(fù)雜度為Ο(n^2)裕寨,提前排序時間復(fù)雜度為Ο(nlogn)
    14-8,未排序

    14-23派继,提前排序 sort復(fù)雜度為Ο(nlogn)+尋找同樣的數(shù)Ο(n)

    問題2:Finding the mode
    找到眾數(shù)
    提前排序時間復(fù)雜度為Ο(nlogn)
    14-39宾袜,提前排序

    問題3:在1024個數(shù)中找32個數(shù)
    14-46

    問題4: Finding Anagrams
    anagram:用同樣的字母但排序不同。例 ate/tea/eat
    14-48

7.4 Binary Search Tree

A binary search tree驾窟,BST庆猫,左子數(shù)皆小于根節(jié)點,右子樹皆大于根節(jié)點
If a BST with n elements is “reasonably” balanced, search involves in the worst case, Θ(log n) comparisons.
對BST執(zhí)行Inorder遍歷將生成其已排序的元素秩序绅络。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末月培,一起剝皮案震驚了整個濱河市嘁字,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杉畜,老刑警劉巖纪蜒,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異此叠,居然都是意外死亡纯续,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門灭袁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杆烁,“玉大人,你說我怎么就攤上這事简卧⊥没辏” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵举娩,是天一觀的道長析校。 經(jīng)常有香客問我,道長铜涉,這世上最難降的妖魔是什么智玻? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮芙代,結(jié)果婚禮上吊奢,老公的妹妹穿的比我還像新娘。我一直安慰自己纹烹,他們只是感情好页滚,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著铺呵,像睡著了一般裹驰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上片挂,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天幻林,我揣著相機與錄音,去河邊找鬼音念。 笑死沪饺,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的闷愤。 我是一名探鬼主播整葡,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼肝谭!你這毒婦竟也來了掘宪?” 一聲冷哼從身側(cè)響起蛾扇,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎魏滚,沒想到半個月后镀首,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡鼠次,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年更哄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腥寇。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡成翩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赦役,到底是詐尸還是另有隱情麻敌,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布掂摔,位于F島的核電站术羔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏乙漓。R本人自食惡果不足惜级历,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望叭披。 院中可真熱鬧寥殖,春花似錦、人聲如沸涩蜘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽皱坛。三九已至编曼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剩辟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工往扔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贩猎,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓萍膛,卻偏偏與公主長得像吭服,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蝗罗,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

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

  • 堆(大頂堆)的概念 堆是一種特殊的二叉樹艇棕,大頂堆就是根節(jié)點為最大值的堆蝌戒,它具有如下的特點: 堆是完全二叉樹 堆常用...
    invincine閱讀 1,310評論 0 5
  • 排序算法 文章內(nèi)公式可能不能解析,可以到我的技術(shù)博客的網(wǎng)站進行查閱 交流或更多內(nèi)容請關(guān)注我的公眾號:nezha_b...
    哪吒小子閱讀 292評論 0 3
  • 夜鶯2517閱讀 127,717評論 1 9
  • 版本:ios 1.2.1 亮點: 1.app角標可以實時更新天氣溫度或選擇空氣質(zhì)量沼琉,建議處女座就不要選了北苟,不然老想...
    我就是沉沉閱讀 6,886評論 1 6
  • 我是一名過去式的高三狗,很可悲打瘪,在這三年里我沒有戀愛友鼻,看著同齡的小伙伴們一對兒一對兒的,我的心不好受闺骚。怎么說呢彩扔,高...
    小娘紙閱讀 3,384評論 4 7