def build_heap(array):for i inrange(len(array)//2-1,-1,-1):big_heap(array,i,len(array))
def big_heap(array,idx,n):
l,r =2*idx+1,2*idx+2
large = idx
if l < n and array[large]< array[l]:
large = l
if r < n and array[large]< array[r]:
large = r
if large != idx:
array[large],array[idx]= array[idx],array[large]big_heap(array,large,n)
def heap_sort(array):build_heap(array)for i inrange(len(array)-1,-1,-1):
array[0],array[i]= array[i],array[0]big_heap(array,0,i)if __name__ =='__main__':
array =[5,6,3,2,9,5,22,3,66]heap_sort(array)print(array)