Advertisement
Guest User

Untitled

a guest
May 21st, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.76 KB | None | 0 0
  1. def heapify(unsorted, index, heap_size):
  2.     largest = index
  3.     left_index = 2 * index + 1
  4.     right_index = 2 * index + 2
  5.     if left_index < heap_size and unsorted[left_index] > unsorted[largest]:
  6.         largest = left_index
  7.  
  8.     if right_index < heap_size and unsorted[right_index] > unsorted[largest]:
  9.         largest = right_index
  10.  
  11.     if largest != index:
  12.         unsorted[largest], unsorted[index] = unsorted[index], unsorted[largest]
  13.         heapify(unsorted, largest, heap_size)
  14.  
  15.  
  16. def heap_sort(unsorted):
  17.     n = len(unsorted)
  18.     for i in range(n // 2 - 1, -1, -1):
  19.         heapify(unsorted, i, n)
  20.     for i in range(n - 1, 0, -1):
  21.         unsorted[0], unsorted[i] = unsorted[i], unsorted[0]
  22.         heapify(unsorted, 0, i)
  23.     return unsorted)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement