Given the following data 19 23 45 18 26 10 50 48 build a ma
Given the following data:
 19 , 23, 45, 18, 26 ,10, 50 ,48
 build a maxheap showing all the steps. Count number of comparisons in each step to get the final runtime. Use array notation and represent your data using a table. Finally, draw the tree to validate if it is a maxheap.
I\' m having trouble with this one, can anyone help?
Solution
def max_heapify(A, i):
     m = 0
     left = 2*i + 1
     m += 1
     right = 2*i + 2
     m += 1
     largest = i
     m += 1
    m += 1
     if left<len(A) and A[left]>A[largest]:
         largest = left
         m += 1
    m += 1
     if right < len(A) and A[right] > A[largest]:
         largest = right
         m += 1
     m += 1
     if largest != i:
         A[i], A[largest] = A[largest], A[i]
         m += 1
         max_heapify(A, largest)
     return m
 def build_max_heap(A):
     n = 0
     for i in range(len(A)):
         m = max_heapify(A, i)
         n += m
     return A, n
A = [19, 23, 45, 18, 26, 10, 50, 48]
 A, n = build_max_heap(A)
 print \"Running Time:\", n

