Úvod do vkládání Seřadit v JavaScriptu
Třídění je jedním z důležitých konceptů, které se programátoři naučí zahájit svou cestu v oblasti informatiky, bez ohledu na to, jaký programovací jazyk se zvolí. Třídění nám pomáhá lokalizovat cílová data, která chceme prohledávat, rychleji a pohodlněji, a to tříděním vzestupně nebo sestupně.
Algoritmy třídění se používají k přeskupování prvků, přičemž prvkem může být číslo nebo řetězec. Existuje mnoho typů třídicích algoritmů na základě jejich metody třídění a přístupu, který používají pro třídění prvků, a každý typ má své výhody a nevýhody.
V tomto blogu se zaměříme na řazení, běžný druh, který je snadno pochopitelný a implementovatelný.
Co je to řazení v JavaScriptu?
Třídění vložení je jednoduchý, snadno pochopitelný algoritmus, který nejlépe funguje s malým seznamem dat, tříděním každého prvku v seznamu dat jeden po druhém zleva doprava. Je také známa jako srovnávací řazení, kde porovnává aktuální hodnotu s ostatními hodnotami ve stejném seznamu dat, který je tříděn. Podle iteračního přístupu je každý prvek umístěn v seznamu dat ve správném pořadí.
Čím více času trvá algoritmus k třídění, jeho výkon se považuje za špatný a je třeba zvážit jiný algoritmus pro třídění dat. Třídění vložení má časovou složitost O (n²) nebo spouští kvadratický čas pro třídění seznamu dat v nejhorším případě. To obvykle není příliš efektivní a nemělo by se používat pro velké seznamy. Obvykle však překonává pokročilé algoritmy, jako je quicksort nebo mergesort na menších seznamech.
Vkládací řazení je většinou efektivnější než jiné kvadratické algoritmy třídění, jako je třídění bublin nebo výběrové řazení. Jeho nejlepším scénářem je čas O (n) nebo lineární, ke kterému dochází, pokud je vstupní pole již tříděno. Doba běhu řazení je v průměru stále kvadratická.
V níže uvedeném příkladu budeme mít snadný přístup na vysoké úrovni k třídění dat uložených ve struktuře dat pole a pomocí metody třídění třídění dat bez implementace algoritmů.
Příklad - Algoritmus řazení vložení
Kód:
// 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));
Výstup:
Vysvětlení: V algoritmu jsme implementovali 2 pro smyčky, vnější pro smyčku je iterovat přes prvky pole a vnitřní pro smyčku se používá k třídění prvků pole ve vzestupném pořadí jejich hodnoty. Aktuální proměnná drží aktuální hodnotu pole a proměnná j je nastavena na jednu hodnotu menší než aktuální pozice indexu pole. Zkontrolujeme, zda je aktuální prvek (aktuální) menší než hodnota pole na j- té pozici (unsortedData (j) ) a pokud je pravdivý, pak tyto hodnoty seřadíme.
Iterace 1 - aktuální (96): (96, 5, 42, 1, 6, 37, 21)
Iterace 2 - aktuální (5): (5, 96, 42, 1, 6, 37, 21)
Iterace 3 - aktuální (42): (5, 42, 96, 1, 6, 37, 21)
Iterace 4 - aktuální (1): (1, 5, 42, 96, 6, 37, 21)
Iterace 5 - aktuální (6): (1, 5, 6, 42, 96, 37, 21)
Iterace 6 - aktuální (37): (1, 5, 6, 37, 42, 96, 21)
Iterace 7 - aktuální (21): (1, 5, 6, 21, 37, 42, 96)
Vnější iterace smyčky začíná na 1. pozici indexu, protože chceme přesunout nejmenší prvek na levou stranu, takže porovnáváme, zda je aktuální prvek menší než prvky na levé straně.
Druhy třídění
Typy algoritmů, které se používají pro třídění dat, zahrnují následující koncepty nebo myšlenky v jejich přístupu ke třídění dat:
- Srovnání versus nesrovnávací strategie
- Iterativní versus rekurzivní implementace,
- Paradigma rozdělte a dobijte (to nebo ono),
- Náhodný přístup.
Podívejme se na několik příkladů:
1. Sloučit třídění používá k třídění prvků v poli přístup rozdělit a dobýt.
2. Třídění vložení, Bubble Sort je třídění založené na porovnání.
Při třídění dat je snazší přijít s optimálním řešením složitých problémů. například,
- Hledání konkrétní hodnoty,
- Nalezení minimální nebo maximální hodnoty,
- Testování jedinečnosti a odstraňování duplikátů,
- Počítání, kolikrát se konkrétní hodnota objevila atd.
Závěr
V tomto článku jsme prošli definicí způsobu vkládání a jeho časovou složitostí a různými dalšími typy třídicích algoritmů na základě jejich přístupu. Studium různých třídicích algoritmů nám pomáhá určit, který z nich je za určitých okolností vhodnější, nebo použít případy, které nám pomáhají třídit data rychleji.
Doporučené články
Toto je průvodce zařazením vložení do JavaScriptu. Zde diskutujeme o tom, co je vložení v javascriptu a jeho typy s příkladem. Další informace naleznete také v následujících článcích -
- Vzory v JavaScriptu
- Případ v jazyce JavaScript
- Podmíněné příkazy v JavaScriptu
- Objekty JavaScriptu
- Různé typy smyček s jeho výhodami