Рубрики

Программа Python для сортировки кучи

Сортировка кучи — это метод сортировки на основе сравнения, основанный на структуре данных двоичной кучи. Это похоже на сортировку выбора, где мы сначала находим максимальный элемент и помещаем максимальный элемент в конец. Мы повторяем тот же процесс для оставшегося элемента.

# Python программа для реализации кучи Sort

  
# Куча поддерева с корнем в индексе i.
# n - размер кучи

def heapify(arr, n, i):

    largest = # Инициализировать крупнейших как корень

    l = 2 * i + 1     # left = 2 * i + 1

    r = 2 * i + 2     # right = 2 * i + 2

  

    # Посмотрим, существует ли левый потомок root

    # больше корня

    if l < n and arr[i] < arr[l]:

        largest = l

  

    # Посмотрим, существует ли правый потомок root

    # больше корня

    if r < n and arr[largest] < arr[r]:

        largest = r

  

    # Сменить root, если нужно

    if largest != i:

        arr[i],arr[largest] = arr[largest],arr[i]  # обмен

  

        # Помочь корень.

        heapify(arr, n, largest)

  
# Основная функция для сортировки массива заданного размера

def heapSort(arr):

    n = len(arr)

  

    # Построить maxheap.

    for i in range(n, -1, -1):

        heapify(arr, n, i)

  

    # Один за другим элементы извлечения

    for i in range(n-1, 0, -1):

        arr[i], arr[0] = arr[0], arr[i]   # обмен

        heapify(arr, i, 0)

  
# Код драйвера для проверки выше

arr = [ 12, 11, 13, 5, 6, 7]

heapSort(arr)

n = len(arr)

print ("Sorted array is")

for i in range(n):

    print ("%d" %arr[i]),

# Этот код предоставлен Мохитом Кумрой

Выход:

Sorted array is
5 6 7 11 12 13

Пожалуйста, обратитесь к полной статье по сортировке кучи для более подробной информации!

Рекомендуемые посты:

Программа Python для сортировки кучи

0.00 (0%) 0 votes