Download presentation
Presentation is loading. Please wait.
1
Binary Heaps and Heapsort
2
MAX-HEAPIFY MAX-HEAPIFY (A, i) l ← LEFT (i) r ← RIGHT(i)
if l ≤ heap-size[A] and A[l] > A[i] then largest ← l else largest ← i if r ≤ heap-size[A] and A[r]>A[largest] then largest ← r if largest ≠ i then exchange A[i] with A[largest] MAX-HEAPIFY (A, largest)
3
BUILD-HEAP BUILD-HEAP (A) heap-size[A] ← length[A]
for i ← length[A]/2 downto 1 do MAX-HEAPIFY(A, i)
4
BUILD-HEAP Thus, the running time is 2n = O(n) The number of
nodes at height h Multiplied by their height
5
HEAPSORT HEAPSORT (A) BUILD-HEAP(A) for i ← length[A] downto 2
do exchange A[1] with A[i] heap-size[A] ← heap-size[A] - 1 MAX-HEAPIFY(A, 1)
6
Priority Queues HEAP-MAXIMUM (A) 1 return A[1]
7
HEAP-EXTRACT-MAX HEAP-EXTRACT-MAX (A) 1 if heap-size[A] < 1
2 then error “heap underflow” 3 max A[1] 4 A[1] A[heap-size[A]] 5 heap-size[A] heap-size[A] – 1 6 MAX-HEAPIFY (A, 1) 7 return max
8
HEAP-INCREASE-KEY HEAP-INCREASE-KEY(A, i, key) 1 if key < A[i]
then error “new key smaller than current” 3 A[i] key 4 while i > 1 and A[PARENT(i) < A[i] 5 do exchange A[i] A[PARENT(i)] 6 i PARENT(i)
9
MAX-HEAP-INSERT MAX-HEAP-INSERT (A, key)
1 heap-size[A] heap-size[A] + 1 2 A[heap-size[A]] - 3 HEAP-INCREASE-KEY(A, heap-size[A], key)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.