미정렬된 배열에서 최대값 or 최소값을 찾을 때 사용하는 정렬
def heap_sort(arr):
def heapify(unsorted, index, heap_size):
largest = index
left_index = 2 * index + 1
right_index = 2 * index + 2
if left_index < heap_size and unsorted[left_index] > unsorted[largest]:
largest = left_index
if right_index < heap_size and unsorted[right_index] > unsorted[largest]:
largest = right_index
if largest != index:
unsorted[index], unsorted[largest] = unsorted[largest], unsorted[index]
heapify(unsorted, largest, heap_size)
heap_size = len(arr)
for i in range(heap_size // 2 - 1, -1, -1):
heapify(arr, i, heap_size)
print("maximum :", arr[0])