Зміст[Сховати][Показати]
Інформатика – це повне розуміння складності алгоритмів і структур даних.
У вас є список елементів, які потрібно відсортувати, але у вас немає часу чи ресурсів для використання більш складного алгоритму сортування.
Сортування вставками є одним із найпростіших алгоритмів сортування, але воно може бути повільним для великих списків.
Легка реалізація та розуміння зробили цей метод улюбленим серед програмістів. Він ідеально підходить для невеликих списків або коли вам потрібно швидке рішення.
У цьому блозі ми розглянемо тимчасову складність сортування вставками. Цей алгоритм використовується для сортування масивів і має час виконання O(n2). Це означає, що часова складність збільшується із збільшенням розміру масиву.
Однак цей алгоритм часто може бути швидшим, ніж інші алгоритми сортування, такі як швидке сортування.
Давайте детальніше розглянемо, як працює сортування вставками!
Що таке алгоритм сортування вставками?
Сортування вставкою по одному елементу створює масив, який можна сортувати, який часто називають списком.
Наприклад, сортування застосовується в складних комп’ютерних програмах, таких як компілятори, де порядок маркерів важливий для інтерпретації програми.
Як працює сортування вставками?
Коли ми використовуємо сортування вставкою для сортування масиву, алгоритм починає з пошуку найменшого елемента в списку і вставлення його в правильне положення.
Потім він знаходить наступний найменший елемент і вставляє його в правильне положення тощо.
Алгоритм працює, перебираючи список, порівнюючи кожен елемент з тим, що стоїть перед ним.
Якщо елементи розташовані в неправильному порядку, алгоритм міняє їх місцями. Потім він перевіряє, чи відсортований список, і якщо так, алгоритм завершується.
На практиці сортування вставкою часто реалізується за допомогою кількох рядків коду, що робить його популярним вибором для сортування невеликих масивів. Однак при використанні цього алгоритму слід враховувати тимчасову складність.
приклад:
Ось приклад того, як працює сортування вставками. Ми будемо використовувати наступний масив:
1, 2, 3, 4, 5, 6
Алгоритм починається з пошуку найменшого елемента в списку, який дорівнює 1. Потім він вставляє його в правильне положення, першу позицію. Потім він знаходить наступний найменший елемент, який дорівнює 2. Він вставляє його в правильне положення, яке є другою позицією.
Потім він знаходить наступний найменший елемент, який дорівнює 3. Він вставляє його в правильне положення, тобто третя.
Потім він знаходить наступний найменший елемент, який дорівнює 4. Він вставляє його в правильне положення, яке є четвертим, і так далі. Тепер список відсортований!
З прикладу ми бачимо, що алгоритм виконує шість порівнянь і міняє місцями для сортування списку. Це тому, що потрібно н2 порівняння та заміни для сортування списку з n елементів. У цьому випадку n=6.
Як покращити складність часу сортування вставок?
У той час як сортування вставкою має час виконання O(n2), його можна покращити за допомогою кращого алгоритму сортування, наприклад швидкого сортування.
Quicksort має час виконання O(n log n), який набагато швидше, ніж O(n2).
Однак у деяких випадках сортування вставками може бути швидшим, ніж швидке сортування.
Наприклад, якщо список уже впорядкований, сортування вставкою займе менше часу, ніж швидке сортування.
На практиці сортування вставкою часто реалізується за допомогою кількох рядків коду, що робить його популярним вибором для сортування невеликих масивів.
Однак при використанні цього алгоритму слід враховувати тимчасову складність.
Часові складності
Найгірша складність O(n2):
Часова складність зростає із збільшенням розміру масиву. Потрібно н2 порівняння та заміни для сортування списку з n елементів.
Наприклад, якщо у нас є масив розміром 1000, алгоритму буде потрібно 1,000,000 XNUMX XNUMX порівнянь і замін, щоб відсортувати масив.
Найкраща складність випадку O(n):
Часова складність така ж, як і розмір вхідного масиву. я
t виконує n порівнянь і змінює місця для сортування списку з n елементів. Наприклад, розглянемо масив розміром 5. Алгоритму буде потрібно п’ять порівнянь і замін, щоб відсортувати масив.
Середня складність випадку O(n2):
Часова складність у цьому випадку знаходиться між найгіршим і найкращим випадками.
Потрібно н2 порівняння та заміни для сортування списку з n елементів.
Таким чином, сортування вставками є стабільним алгоритмом сортування.
Чому сортування вставок стабільне?
Сортування вставкою є стабільним, оскільки зберігає порядок рівних елементів у вхідному масиві.
Це важливо для багатьох програм, таких як пошук даних або фінансовий аналіз. Наприклад, якщо ми маємо два списки чисел і хочемо їх порівняти, нам потрібно переконатися, що порядок елементів збережено.
Якщо списки не відсортовані, ми не будемо їх точно порівнювати.
залишити коментар