Advertisement
nathanwailes

Heap sort

May 18th, 2024
650
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.56 KB | None | 0 0
  1. def heap_sort(arr):
  2.     def heapify(arr, n, i):
  3.         largest = i
  4.         l = 2 * i + 1
  5.         r = 2 * i + 2
  6.  
  7.         if l < n and arr[largest] < arr[l]:
  8.             largest = l
  9.  
  10.         if r < n and arr[largest] < arr[r]:
  11.             largest = r
  12.  
  13.         if largest != i:
  14.             arr[i], arr[largest] = arr[largest], arr[i]
  15.             heapify(arr, n, largest)
  16.  
  17.     n = len(arr)
  18.  
  19.     for i in range(n//2 - 1, -1, -1):
  20.         heapify(arr, n, i)
  21.  
  22.     for i in range(n-1, 0, -1):
  23.         arr[i], arr[0] = arr[0], arr[i]
  24.         heapify(arr, i, 0)
  25.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement