heap sort

백승진·2021년 8월 31일
0

미정렬된 배열에서 최대값 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])
profile
12년 .NET 개발 경력을 가진 웹 초짜 개발자입니다 :)

0개의 댓글