小根堆 總結

2021-06-05 17:12:02 字數 617 閱讀 4517

小根堆

如果有乙個關鍵字的集合k=, 把所有元素按完全二叉樹的順序儲存

方式存放在乙個一維陣列中,並且滿足

ki <= k2i+1 且 ki <= k2i+2  (i = 0, 1, ..., (n-2)/2 向上取整)

則稱這個集合為小根堆。

小根堆的建立:

1. 複製堆陣列

2. 找到最初的調整位置,即最後乙個分支結點

3.1自底向上逐步擴大形成堆

3.2 向前換乙個分支結點

小根堆的插入:

1. 將待插入元素插入已建成堆的最後面

2. 沿著出入位置所在的分支逐步向上調整

小根堆的刪除:

1. 將頂元素刪除

2. 將陣列中最後乙個元素放到堆頂

3. 自頂向下調整

堆(大根堆 小根堆)

堆又可稱之為完全二叉堆。這是乙個邏輯上基於完全二叉樹 物理上一般基於線性資料結構 如陣列 向量 鍊錶等 的一種資料結構。學習過完全二叉樹的同學們都應該了解,完全二叉樹在物理上可以用線性資料結構進行表示 或者儲存 例如陣列int a 5 就可以用來描述乙個擁有5個結點的完全二叉樹。那麼基於完全二叉樹的...

堆(Heap)大根堆 小根堆

具有以下的特點 1 完全二叉樹 2 heap中儲存的值是偏序 min heap 父節點的值小於或等於子節點的值 max heap 父節點的值大於或等於子節點的值 一般都用陣列來表示堆,i結點的父結點下標就為 i 1 2。它的左右子結點下標分別為2 i 1和2 i 2。如第0個結點左右子結點下標分別為...

堆(Heap)大根堆 小根堆

目錄一般都用陣列來表示堆,i結點的父結點下標就為 i 1 2。它的左右子結點下標分別為2 i 1和2 i 2。如第0個結點左右子結點下標分別為1和2。插入乙個元素 新元素被加入到heap的末尾,然後更新樹以恢復堆的次序。每次插入都是將新資料放在陣列最後。可以發現從這個新資料的父結點到根結點必然為乙個...