Вступ до сортування вставки в JavaScript
Сортування - це одне з важливих понять, яке програмісти вчаться розпочати свій шлях у інформатиці незалежно від мови програмування, обраної для вивчення. Сортування допомагає нам швидше та зручно знаходити цільові дані, які ми хочемо шукати, сортуючи їх у порядку зростання або у порядку зменшення.
Алгоритми сортування використовуються для впорядкування елементів, де елементом може бути число або рядок. Існує багато типів алгоритмів сортування, заснованих на їх методі сортування та підході, який вони дотримуються до сортування елементів, і кожен тип має свої переваги та недоліки.
У цьому блозі ми зупинимось на сортуванні вставки, загальному вигляді, який легко зрозуміти та реалізувати.
Що таке сортування вставки в JavaScript?
Сортування вставки - це простий, зрозумілий алгоритм, який найкраще працює з невеликим списком даних, сортуючи кожен елемент у списку даних один за одним зліва направо. Він також відомий як сортування порівняння, де він порівнює поточне значення з іншими значеннями в тому ж списку даних, який сортується. Згідно з ітераційним підходом розміщувати кожен елемент у правильному порядку у списку даних.
Чим більше часу алгоритму потрібно для сортування, тим його ефективність вважається поганою, і потрібно розглянути інший алгоритм для сортування даних. Сортування вставки має часову складність O (n²) або запускає квадратичний час для сортування списку даних за найгіршим сценарієм. Зазвичай це не дуже ефективно і не повинно використовуватися для великих списків. Однак зазвичай вона перевершує передові алгоритми, такі як квакісорт або злиття в менших списках.
Встановлення сортування в більшості випадків є більш ефективним, ніж інші квадратичні алгоритми сортування, такі як сортування бульбашок або вибір сортування. Його найкращий сценарій, час - O (n), або лінійний, який виникає, якщо вхідний масив вже відсортований. В середньому час запуску сортування вставки все ще є квадратичним.
У наведеному нижче прикладі ми матимемо простий підхід на високому рівні для сортування даних, що зберігаються в структурі даних масиву, і використовувати його метод сортування для сортування даних без застосування алгоритмів.
Приклад - Алгоритм сортування вставки
Код:
// Declaring unsorted data and storing it in array data structure
var dataArray = (96, 5, 42, 1, 6, 37, 21) // Function - Insertion Sort Algo.
function insertSort(unsortedData) (
for (let i = 1; i < unsortedData.length; i++) (
let current = unsortedData(i);
let j;
for(j=i-1; j >= 0 && unsortedData(j) > current;j--) (
unsortedData(j + 1) = unsortedData(j) )
unsortedData(j + 1) = current;
)
return unsortedData;
)
// print sorted array
console.log(insertSort(dataArray));
Вихід:
Пояснення: В алгоритмі ми реалізували 2 для циклів, зовнішня для циклу - це повторити елементи масиву, а внутрішня для циклу використовується для сортування елементів масиву у порядку зростання їх значення. Поточна змінна містить поточне значення масиву, а змінна j встановлюється на одне значення, менше, ніж поточне положення індексу масиву. Ми перевіряємо, чи є поточний елемент (current) меншим за значення масиву в j- й позиції (unsortedData (j) ), і якщо це правда, то сортуємо ці значення.
Ітерація 1 - струм (96): (96, 5, 42, 1, 6, 37, 21)
Ітерація 2 - струм (5): (5, 96, 42, 1, 6, 37, 21)
Ітерація 3 - струм (42): (5, 42, 96, 1, 6, 37, 21)
Ітерація 4 - струм (1): (1, 5, 42, 96, 6, 37, 21)
Ітерація 5 - струм (6): (1, 5, 6, 42, 96, 37, 21)
Ітерація 6 - струм (37): (1, 5, 6, 37, 42, 96, 21)
Ітерація 7 - струм (21): (1, 5, 6, 21, 37, 42, 96)
Зовнішня для ітерації циклу починається з 1- го положення індексу, оскільки ми хочемо перемістити найменший елемент вліво, тому ми порівнюємо, чи менший елемент струму, ніж елементи на його лівій стороні.
Види сортування
Типи алгоритмів, які використовуються для сортування даних, охоплюють такі поняття чи ідеї у своєму підході до сортування даних:
- Порівняння проти стратегій, що не ґрунтуються на порівнянні,
- Ітеративна проти рекурсивна реалізація,
- Парадигма розділення та перемоги (та чи інша),
- Випадковий підхід.
Розглянемо кілька прикладів:
1. Сортування сортування використовує підхід ділити і перемогти для сортування елементів у масиві.
2. Сортування вставки, Сортування бульбашок - це сортування на основі порівняння.
Коли сортуються дані, стає легше знайти оптимальне рішення складних проблем. наприклад,
- Пошук конкретного значення,
- Знаходячи мінімальне або максимальне значення,
- Тестування на унікальність та видалення дублікатів,
- Підрахунок, скільки разів з’явилося конкретне значення тощо.
Висновок
У цій статті ми пройшли визначення сортування вставки та її часової складності та різних інших типів алгоритмів сортування на основі їх підходу. Вивчення різних алгоритмів сортування допомагає нам визначити, який з них підходить за певних обставин або використовувати випадки, які допомагають нам сортувати дані з більш швидкою швидкістю.
Рекомендовані статті
Це посібник зі сортування вставки в JavaScript. Тут ми обговорюємо, що таке сортування вставок у javascript та його типи на прикладі. Ви також можете переглянути наступні статті, щоб дізнатися більше -
- Шаблони в JavaScript
- Заява справи в JavaScript
- Умовні заяви у JavaScript
- Об'єкти JavaScript
- Різні типи петель з її перевагами