Введение в сортировку кучи в Python

Любой из языков программирования предоставляет различные функциональные возможности благодаря предопределенным функциям. Используя предопределенные методы и функции, предлагаемые языком программирования, можно разработать сложное приложение. Когда мы говорим о преобразовании значений списка в отсортированную форму, подход называется сортировкой. Хотя результаты сортировки одинаковы независимо от подхода сортировки, наилучший подход обеспечивает эффективность сортировки данных. Когда дело доходит до сортировки с использованием языка программирования Python, у нас есть метод sort (), который может просто принять значение и отсортировать его в порядке возрастания. В этой статье мы узнаем, как сортировать данные массива в порядке возрастания, используя сортировку кучи, и будем использовать язык программирования python для реализации кода в heapsort.

Как работает сортировка кучи в Python?

  • Прежде чем объяснить работу Python, важно понять, что это такое и чем оно отличается от других алгоритмов сортировки. Heapsort можно рассматривать как подход сортировки, при котором максимальное значение из списка обнаруживается и сдвигается до последнего из массива, а процесс повторяется до тех пор, пока список не будет преобразован в отсортированный список. Путь, который отличает его от других методов сортировки, - это не что иное, как тот подход, который используется для сортировки всех значений массива. Он состоит из рекурсивного процесса, который длится до тех пор, пока значения в массиве не упорядочены в порядке возрастания.
  • Теперь давайте разберемся, как сортировка кучи работает в деталях, используя пример. Предположим, что arr является массивом, который содержит значения вроде 9, 5, 2. В начале значения массива не упорядочены, но после выполнения сортировки кучи он будет преобразован в порядке возрастания. Когда алгоритм сортировки кучи применяется к этому массиву, он первым делом сделает это, чтобы найти наше наибольшее значение в массиве. Поскольку 9 является наибольшим значением, оно будет перемещено в последний индекс списка, а все остальные значения будут перемещены на один шаг влево, чтобы создать пространство для хранения наибольшего значения. Как только 9 сместится к последнему индексу или массиву arr, список значений будет выглядеть как 5, 2, 9.
  • Теперь массив все еще не отсортирован, что указывает на то, что тот же процесс должен быть повторен снова. Теперь при нахождении наибольшего значения из списка необработанных значений 5 будет выбрано вторым по величине значением и будет перемещено во второй последний индекс. После перемещения 5 на вторую последнюю позицию массив будет преобразован в отсортированный массив, а значения будут расположены в порядке возрастания сборки, например 2, 5, 9. Так работает сортировка кучи. Фактически, он определяет максимальное значение и перемещает его в конец массива и продолжает выполнять тот же процесс, пока массив не превратится в отсортированный массив.

Примеры реализации сортировки кучи в Python

Чтобы узнать концепцию heapsort, давайте разберемся с ней на примере. Мы будем реализовывать алгоритм сортировки кучи с использованием языка Python. Чтобы разработать программу, мы будем использовать цикл for, чтобы вызвать механизм рекурсии, и будем использовать проверку условий для проверки условий. В приведенном ниже коде execute_heapsort - это функция, которая принимает три аргумента: val_arr, num и count, где var_arr - массив, а num и count - целочисленный тип данных. Идея приведенного ниже кода состоит в том, чтобы найти наибольшее число и временно удерживать его в переменной max_val до тех пор, пока оно не будет сдвинуто до конца массива. Если оператор использовался для того, чтобы убедиться, что наибольшее значение перемещается в соответствующую позицию, и эта позиция не может обновляться следующим наибольшим значением в списке. Программа будет повторять подход поиска наибольшего значения и сдвигать его до конца, пока список не настроится на отсортированный.

Код:

def perform_heapsort(val_arr, num, count):
max_val = count
counter1 = 2 * count + 1
counter2 = 2 * count + 2
if counter1 < num and val_arr(count) < val_arr(counter1):
max_val = counter1
if counter2 < num and val_arr(max_val) < val_arr(counter2):
max_val = counter2
if max_val != count:
val_arr(count), val_arr(max_val) = val_arr(max_val), val_arr(count) perform_heapsort(val_arr, num, max_val)
def heapSort(val_arr):
num = len(val_arr)
for count in range(num, -1, -1):
perform_heapsort(val_arr, num, count)
for count in range(num-1, 0, -1):
val_arr(count), val_arr(0) = val_arr(0), val_arr(count) # swap
perform_heapsort(val_arr, count, 0)
val_arr = ( 52, 91, 64, 252, 36, 91, 5, 35, 28) heapSort(val_arr)
num = len(val_arr)
print ("Values after performing heapsort")
for count in range(num):
print ("%d" %val_arr(count)),

В этой программе значения были назначены вручную через код. Var_arr - это массив, содержащий значения. В этом примере мы присвоили массиву 9 значений. Значения в массиве будут переданы в метод с именем execute_heapsort. Как только значения войдут в метод, он будет обработан, и программа начнет поиск наибольшего значения из списка. Максимальное значение в этом массиве - 252, поэтому оно будет смещено в конец массива, и этот процесс будет применяться ко всем значениям, пока массив не превратится в отсортированный массив. Как только массив отсортирован программой, выходные данные будут отображаться в выходных данных.

Выход:

Вывод

Heapsort является одним из различных алгоритмов сортировки. Возможным результатом этого алгоритма является отсортированный список, в котором данные расположены в порядке возрастания. Поскольку процесс повторяется, и каждый раз, когда все значения сдвигаются влево для настройки максимального значения списка в конце массива, он считается менее эффективным алгоритмом сортировки. Такой подход сортировки может быть использован в приложении, которое должно обрабатывать небольшое количество значений.

Рекомендуемые статьи

Это руководство по сортировке кучи в Python. Здесь мы обсуждаем введение в сортировку кучи в Python, как работает сортировка кучи в Python и примеры реализации сортировки кучи в Python. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше-

  1. Что такое информатика?
  2. Что такое машинное обучение?
  3. Безопасность веб-приложений
  4. Особенности Python
  5. Руководство по сортировке алгоритмов в Python