algo Code Beispiel
import math
def LEFT(i):
return 2 * i + 1
def RIGHT(i):
return 2 * i + 2
def maxHeapify(A, i, n):
l = LEFT(i)
r = RIGHT(i)
largest = i
if l < n and A[l] > A[i]:
largest = l
if r < n and A[r] > A[largest]:
largest = r
if largest != i:
A[i], A[largest] = A[largest], A[i]
maxHeapify(A, largest, n)
return A
def buildMaxHeap(A, n):
for i in range(math.floor(n/2), 0):
maxHeapify(A, i, n)