Вступ до сортування купи в Python

Будь-яка з мов програмування забезпечує різні функціональні можливості завдяки заданим функціям. Використовуючи заздалегідь визначені методи та функції, запропоновані мовою програмування, можна розробити складне застосування. Коли ми говоримо про перетворення значень списку в відсортовану форму, підхід називається сортуванням. Хоча вихід сортування однаковий незалежно від підходу до сортування, найкращий підхід забезпечує ефективність сортування даних. Що стосується сортування за допомогою мови програмування python, у нас є метод sort (), який може просто прийняти значення та сортувати його у порядку зростання. У цій статті ми дізнаємось, як сортувати дані масиву у порядку зростання за допомогою сортування купи і будемо використовувати мову програмування python для виконання кодової реалізації групи.

Як працює Heap Sort у Python?

  • Перш ніж пояснити роботу Python, важливо зрозуміти, що це насправді і чим воно відрізняється від інших алгоритмів сортування. Хепсорт можна розглядати як підхід до сортування, в якому максимальне значення зі списку зустрічається та переміщується до останнього масиву, і процес триває до повторення, поки список не трансформується у відсортований список. Спосіб, що відрізняє його від інших методів сортування, - це не що інше, як лише той підхід, який він дотримується, щоб сортувати всі значення масиву. Він складається з рекурсивного процесу, який триває, поки значення в масиві не впорядковані у порядку зростання.
  • Тепер давайте розберемося, як детально працює сортування купи за допомогою прикладу. Припустимо, arr - це масив, який містить значення, подібні 9, 5, 2. На початку значення масиву не розташовуються впорядкованому порядку, але після виконання сортування купи він буде перетворений у порядку зростання. Коли алгоритм сортування купи застосовується до цього масиву, це найперше, що він зробить, щоб знайти наше найбільше значення в масиві. Оскільки 9 - найбільше значення, воно буде переміщене до останнього індексу списку, а всі інші значення перемістяться на один крок ліворуч, щоб створити простір для розміщення найбільшого значення. Як тільки 9 зміщується до останньої масиву індексу або масиву, список значень буде мати вигляд 5, 2, 9.
  • Тепер досі масив не відсортований, що вказує на те, що той самий процес потрібно повторити ще раз. Тепер, знаходячи найбільше значення зі списку необроблених значень, 5 буде обрано як друге за величиною значення і буде переміщено до другого останнього індексу. Після переміщення 5 у другому останньому положенні масив буде перетворений на відсортований масив, а значення будуть розташовані у порядку зростання за збіркою, як 2, 5, 9. Це спосіб сортування купи. Фактично він визначає максимальне значення і переміщує його до кінця масиву і продовжує виконувати той самий процес, поки масив не перетвориться на відсортований масив.

Приклади для здійснення сортування купи в Python

Щоб дізнатись поняття куплета, давайте зрозуміємо його, використовуючи власне приклад. Ми будемо реалізовувати алгоритм сортування купи за допомогою мови python. Для розробки програми ми будемо використовувати цикл for, щоб навести механізм рекурсії, і будемо використовувати, якщо умови перевіряють, щоб перевірити умови. У наведеному нижче коді perform_heapsort - це функція, яка приймає три аргументи: val_arr, число та count, де var_arr - масив, а число та кількість - цілого типу даних. Ідея коду нижче полягає в тому, щоб знайти найбільше число і тимчасово утримувати його в змінній 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 значень. Значення в масиві будуть передані методу, який називається perform_heapsort. Після введення значень методу він буде оброблений, і програма почне шукати найбільше значення зі списку. Максимальне значення в цьому масиві - 252, тому воно буде зміщене до кінця масиву, і цей процес буде застосовано до всіх значень, поки масив не перетвориться на відсортований масив. Після того, як масив буде відсортований програмою, вихід буде відображений у висновку.

Вихід:

Висновок

Heapsort - один з різних алгоритмів сортування. Можливий вихід цього алгоритму - це відсортований список, який містить дані, розташовані у порядку зростання. Оскільки процес повторюється і кожного разу, коли всі значення зміщуються вліво для регулювання максимального значення списку в кінці масиву, він вважається менш ефективним алгоритмом сортування. Такий підхід сортування може використовуватися в додатку, який повинен обробляти невелику кількість значень.

Рекомендовані статті

Це путівник по сортуванню купи в Python. Тут ми обговорюємо вступ до сортування Heap у Python, як працює сортування Heap у Python та приклади впровадження сортування heap у Python. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Що таке інформатика?
  2. Що таке машинне навчання?
  3. Безпека веб-додатків
  4. Особливості Python
  5. Керівництво по сортуванню алгоритмів в Python