11.Hedp(堆)

概念:

堆(Heap)亦被稱為:優(yōu)先隊列(priority queue)
Binary Heap is a common type of Heap.
性質:堆的實現(xiàn)通過構造二叉堆(binary heap),這種數(shù)據(jù)結構具有以下性質
1.任意節(jié)點小于等于它的所有后裔靠欢,最小元素在堆的根上(堆序性)各拷。
2.堆總是一棵完全樹算灸。complete tree,在node數(shù)量相同的情況下,完全樹高度最小height肯定是lgn粗仓,traversal或其他操作復雜度更低,普通的二叉樹則沒有這種優(yōu)勢蜀踏。
3.將根節(jié)點最大的堆叫做MAX HEAP, 根節(jié)點最小的堆叫做最小堆MIN HEAP
4.index of IChild = index of parent * 2+1
5.index of rChild = index of parent * 2+2
(第4第5的特性決定了二叉堆可以將所有的node放到一個數(shù)組中可以快速地找到某個node的子node)
6.unsorted but follow rules above

java PriorityQueue支持的基本操作

        Queue<Integer> pq = new PriorityQueue<>();
        pq.offer(6);
        pq.offer(5);
        pq.offer(4);//復雜度O(lgn) 插入到heap的最后一個index膘壶,再跟parent節(jié)點比較,比parent小就往上冒泡

        System.out.println(pq.peek());//4 O(1)
        System.out.println(pq.poll());//4
        System.out.println(pq.poll());//5
        //pq.poll() 復雜度O(lgn) 刪除第一個index剂邮,再將最后一個元素移到頂部摇幻,再往下壓與較小的子節(jié)點交換,直到?jīng)]有比它小的節(jié)點

練習

`1.find smallest k elements from an unsorted array of size n
solution1: maintain a MAX-Heap of size k

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末挥萌,一起剝皮案震驚了整個濱河市绰姻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌引瀑,老刑警劉巖狂芋,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異憨栽,居然都是意外死亡帜矾,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門屑柔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屡萤,“玉大人,你說我怎么就攤上這事锯蛀∶鹬裕” “怎么了次慢?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵旁涤,是天一觀的道長翔曲。 經(jīng)常有香客問我,道長劈愚,這世上最難降的妖魔是什么瞳遍? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮菌羽,結果婚禮上掠械,老公的妹妹穿的比我還像新娘。我一直安慰自己注祖,他們只是感情好猾蒂,可當我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著是晨,像睡著了一般肚菠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上罩缴,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天蚊逢,我揣著相機與錄音,去河邊找鬼箫章。 笑死烙荷,一個胖子當著我的面吹牛,可吹牛的內容都是我干的檬寂。 我是一名探鬼主播终抽,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼桶至!你這毒婦竟也來了拿诸?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤塞茅,失蹤者是張志新(化名)和其女友劉穎亩码,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體野瘦,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡描沟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鞭光。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吏廉。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惰许,靈堂內的尸體忽然破棺而出席覆,到底是詐尸還是另有隱情,我是刑警寧澤汹买,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布佩伤,位于F島的核電站聊倔,受9級特大地震影響,放射性物質發(fā)生泄漏生巡。R本人自食惡果不足惜耙蔑,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孤荣。 院中可真熱鬧甸陌,春花似錦、人聲如沸盐股。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疯汁。三九已至寥院,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涛目,已是汗流浹背秸谢。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留霹肝,地道東北人估蹄。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像沫换,于是被迫代替她去往敵國和親臭蚁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內容

  • 堆的定義 堆是一種特殊的數(shù)據(jù)結構,可以形象化的看成一顆完全二叉樹漱挎,一般內部的存儲結構為數(shù)組系枪;堆中的某個節(jié)點總是不大...
    yandaren閱讀 2,780評論 0 5
  • 堆是一棵滿足一定性質的二叉樹,具體的講堆具有如下性質:父節(jié)點的鍵值總是不大于它的孩子節(jié)點的鍵值(小頂堆), 堆可以...
    9527Roy閱讀 618評論 0 0
  • 思考 現(xiàn)在有如下需求磕谅,設計一種數(shù)據(jù)結構私爷,用來存放整數(shù),要求提供3個接口 添加元素 獲取最大值 刪除最大值 通過我們...
    ducktobey閱讀 845評論 0 1
  • Heap in python Heap膊夹,即堆衬浑,也就是優(yōu)先隊列。我們可以在這里找到[]維基百科](https://e...
    英武閱讀 2,740評論 0 51
  • 樹的基本概念 節(jié)點放刨,根節(jié)點工秩,父節(jié)點,子節(jié)點,兄弟節(jié)點都是屬于樹的范濤助币; 一棵樹可以沒有任何節(jié)點浪听,稱為空樹; 一棵樹...
    coder_feng閱讀 1,095評論 0 0