Data Structure

Heap Sort

Learn data structure by example of heap sort algorithm

4/24/2021
0 views
heap-sort-algorithm.cC
# heapify
for i = n/2:1, sink(a,i,n)
	invariant: a[1,n] in heap order

# sortdown
for i = 1:n,
    swap a[1,n-i+1]
    sink(a,1,n-i)
    	invariant: a[n-i+1,n] in final position
end

# sink from i in a[1..n]
function sink(a,i,n):
    # {lc,rc,mc} = {left,right,max} child index
    lc = 2*i
    if lc > n, return # no children
    rc = lc + 1
    mc = (rc > n) ? lc : (a[lc] > a[rc]) ? lc : rc
    if a[i] >= a[mc], return # heap ordered
    swap a[i,mc]
    sink(a,mc,n)
    return result
Heap Sortdata structurealgorithmheap sort algorithm

Loading comments...

Related Examples