大/小根堆 - PriorityQueue

1桐罕,基礎(chǔ)知識

1)完全二叉樹脉让,雙親節(jié)點和孩子節(jié)點的關(guān)系
array[0桂敛,...,n-1]表示完全二叉樹順序存儲模式
1.節(jié)點array[i] 的父節(jié)點為 i==0 ? null : array[i-1/2]
2.節(jié)點array[i]的左孩子為溅潜,array[2*i + 1]
3.節(jié)點array[i]的右孩子為术唬,array[2*i + 2]
2)堆在數(shù)組中的表示方式
堆的邏輯結(jié)構(gòu)是一顆完全二叉樹,存儲結(jié)構(gòu)是一個數(shù)組滚澜。
數(shù)組為完全二叉樹的層次遍歷的結(jié)果粗仓。
3)大根堆和小根堆的定義
前提0 <= i < (n-1)/2
1.滿足array[i] <= array[2i + 1] && array[i] <= array[2i + 2] 為小根堆。
2.滿足array[i] >= array[2i + 1] && array[i] >= array[2i + 2] 為大根堆设捐。

2借浊,創(chuàng)建小根堆

1)調(diào)整數(shù)組為小根堆
處理非葉子節(jié)點順序從[len/2 -1 ~ 0]
調(diào)整小根堆順序,從上往下調(diào)整

image.png

2)小根堆插入
將元素放到數(shù)組末尾
和parent比較挡育,從下往上調(diào)整小根堆
image.png

3)小根堆刪除
刪除array[0] -> array[0] = array[size-1] -> array[size-1] = 0
從上往下巴碗,父節(jié)點與左右孩子的最小值比較,依次調(diào)整小根堆
image.png

image.png

3即寒,大根堆

1)調(diào)整方法橡淆。父節(jié)點與左右子節(jié)點的最大者比較,如果小于max母赵,則交換逸爵。

image.png

2)大根堆插入
放入數(shù)組的最后一個位置
節(jié)點上浮,與父節(jié)點(i-1)/2比較
3)大根堆刪除
刪除堆頂元素 -> 將最后個元素賦值給堆頂
從上往下凹嘲,父節(jié)點與左右子孩子的最大值比較师倔,調(diào)整最大堆。
4)JDK實現(xiàn)大根堆和小跟堆
PriorityQueue: 默認(rèn)為小根堆
PriorityQueue:自定義的Comparator周蹭,使用o2 - o1趋艘,實現(xiàn)大根堆

4,堆排序

1)一種選擇排序凶朗,最壞瓷胧、最好、平均負(fù)責(zé)度都為nlog(n)棚愤。
升序:借助大根堆
降序:借助小根堆
2)堆排序步驟
1.初始化數(shù)組為大根堆搓萧。
2.將array[0] 與 array[len - 1]交換
3.剩余n-1個元素重新調(diào)整為大根堆
4.重復(fù)執(zhí)行交換、調(diào)整的步驟

image.png

image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宛畦,一起剝皮案震驚了整個濱河市瘸洛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌次和,老刑警劉巖反肋,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異斯够,居然都是意外死亡囚玫,警方通過查閱死者的電腦和手機(jī)喧锦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門读规,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抓督,“玉大人,你說我怎么就攤上這事束亏×逶冢” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵碍遍,是天一觀的道長定铜。 經(jīng)常有香客問我,道長怕敬,這世上最難降的妖魔是什么揣炕? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮东跪,結(jié)果婚禮上畸陡,老公的妹妹穿的比我還像新娘。我一直安慰自己虽填,他們只是感情好丁恭,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斋日,像睡著了一般牲览。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恶守,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天第献,我揣著相機(jī)與錄音,去河邊找鬼兔港。 笑死庸毫,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的押框。 我是一名探鬼主播岔绸,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼橡伞!你這毒婦竟也來了盒揉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤兑徘,失蹤者是張志新(化名)和其女友劉穎刚盈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挂脑,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡藕漱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年欲侮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肋联。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡威蕉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出橄仍,到底是詐尸還是另有隱情韧涨,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布侮繁,位于F島的核電站虑粥,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏宪哩。R本人自食惡果不足惜娩贷,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锁孟。 院中可真熱鬧彬祖,春花似錦、人聲如沸罗岖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桑包。三九已至南蓬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哑了,已是汗流浹背赘方。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留弱左,地道東北人窄陡。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像拆火,于是被迫代替她去往敵國和親跳夭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

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