介紹:數據結構中一種特殊的二叉樹,不同於JAVA內存模型中的堆

1.堆是一棵滿足一定性質的二叉樹:父節點的鍵值總是不大於他孩子節點的鍵值,稱小頂堆, 堆可以分爲小頂堆和大頂堆

要實現堆的基本操作,涉及到兩個關鍵函數
siftUp(i x):將位置I的元素X向上調整,以滿足堆的性質,用於INSERT之後
siftDown(i x)用於delete(i)後 用於調整堆

堆的變體:二叉堆 ,二項式堆,斐波那契堆(很高效)

應用場景:優先隊列,一億中找TOP K(維護二叉堆)時間複雜度o(nlogk)
heapify insert peek extractMin delete(i)
O(n) O(logn) O(1) O(logn) O(logn)
https://blog.csdn.net/m0_37264516/article/details/84941656

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章