Uvod u poredak umetanja u JavaScript
Razvrstavanje je jedan od važnih koncepata koji programeri uče kako bi započeli svoje putovanje u računalnoj znanosti bez obzira na programski jezik odabran za učenje. Razvrstavanjem nam pomažemo da brže i prikladno pronađemo ciljne podatke koje želimo pretraživati, sortirajući ih u uzlaznom ili silaznom redoslijedu.
Algoritmi za razvrstavanje koriste se za preuređivanje elemenata, gdje element može biti broj ili niz. Postoji mnogo vrsta algoritama za sortiranje temeljenih na njihovoj metodi sortiranja i pristupu koji slijede pri razvrstavanju elemenata, a svaka vrsta ima svoje prednosti i nedostatke.
U ovom ćemo se blogu fokusirati na vrstu umetanja, uobičajenu vrstu koja je lako razumljiva i implementirana.
Što je vrsta umetanja u JavaScript?
Poredaj umetanja jednostavan je, razumljiv algoritam koji najbolje funkcionira s malim popisom podataka sortiranjem svakog elementa na popisu podataka jedan po jedan s lijeva na desno. Također je poznata i kao usporedna vrsta gdje uspoređuje trenutnu vrijednost s ostalim vrijednostima unutar istog popisa podataka po kojima je sortirana. Slijedi iterativni pristup da se svaki element postavi u ispravnom redoslijedu na popisu podataka.
Što više algoritma treba za razvrstavanje, kaže se da je njegova loša izvedba loša i da bi trebali razvrstati drugi algoritam. Umetanje sorta ima vremensku složenost O (n²) ili pokreće kvadratno vrijeme da bi se popis podataka sortirao u najgorem scenariju. To obično nije vrlo učinkovito i ne bi ga trebalo koristiti za velike popise. Međutim, obično nadilazi napredne algoritme poput quicksorta ili spajanja na manjim popisima.
Umetanje sortiranje, većinu vremena je učinkovitije od ostalih algoritama kvadratnog sortiranja, poput sortiranja mjehurića ili odabira. Njegov najbolji slučaj, vrijeme je O (n), ili linearno, što se događa ako je ulazni niz već sortiran. Prosječno je vrijeme izvođenja vrste umetanja i dalje kvadratno.
U donjem primjeru imat ćemo jednostavan pristup na visokoj razini za razvrstavanje podataka pohranjenih u strukturu podataka s poljem i korištenje njegove metode sortiranja za sortiranje podataka bez provođenja algoritama.
Primjer - Algoritam sortiranja umetanja
Kodirati:
// 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));
Izlaz:
Objašnjenje: U algoritmu smo implementirali 2 za petlje, vanjski za petlju je iterati preko elemenata polja, a unutarnji za petlju koristi se za razvrstavanje elemenata niza u uzlaznom redoslijedu njihove vrijednosti. Trenutna varijabla drži trenutnu vrijednost matrice, a varijabla j je postavljena na jednu vrijednost manju od trenutne pozicije indeksa matrice. Provjeravamo je li trenutni element (struja) manji od vrijednosti niza na j- toj poziciji (unsortedData (j) ) i je li istina onda sortiramo te vrijednosti.
Iteracija 1 - struja (96): (96, 5, 42, 1, 6, 37, 21)
Iteracija 2 - struja (5): (5, 96, 42, 1, 6, 37, 21)
Iteracija 3 - struja (42): (5, 42, 96, 1, 6, 37, 21)
Iteracija 4 - struja (1): (1, 5, 42, 96, 6, 37, 21)
Iteracija 5 - struja (6): (1, 5, 6, 42, 96, 37, 21)
Iteracija 6 - struja (37): (1, 5, 6, 37, 42, 96, 21)
Iteracija 7 - struja (21): (1, 5, 6, 21, 37, 42, 96)
Vanjski za iteraciju petlje počinje u prvom položaju indeksa jer želimo pomaknuti najmanji element na lijevu stranu pa uspoređujemo je li trenutni element manji od elemenata na njegovoj lijevoj strani.
Vrste sortiranja
Vrste algoritama koji se koriste za razvrstavanje podataka obuhvaćaju sljedeće koncepte ili ideje u svom pristupu sortiranju podataka:
- Usporedba sa strategijama koje se ne temelje na usporedbi,
- Iterativna naspram rekurzivne primjene,
- Paradigma podijeli i osvoji (ovo ili ono),
- Slučajno pristupanje.
Razmotrimo nekoliko primjera:
1. Spajanje sortiranja koristi dijeljenje i osvajanje pristupa za razvrstavanje elemenata u nizu.
2. Umetanje sortiranje, Bubble Sort je sorta koja se temelji na usporedbi.
Kad se podaci razvrstaju, postaje lakše pronaći optimalno rješenje složenih problema. na primjer,
- Pretražujući određenu vrijednost,
- Pronalaženje minimalne ili maksimalne vrijednosti,
- Ispitivanje jedinstvenosti i brisanje duplikata,
- Prebrojanje koliko se puta pojavila određena vrijednost itd.
Zaključak
U ovom smo članku prošli kroz definiciju vrste umetanja i njezinu vremensku složenost te razne druge vrste algoritama sortiranja na temelju njihovog pristupa. Proučavanje različitih algoritama sortiranja pomaže nam utvrditi koji je pogodniji u određenim okolnostima ili koristiti slučajeve koji nam pomažu da brže razvrstavamo podatke.
Preporučeni članci
Ovo je vodič za Razvrstavanje umetanja u JavaScript. Ovdje ćemo raspraviti što je vrsta umetanja u JavaScript i njegove vrste s primjerom. Možete pogledati i sljedeće članke da biste saznali više -
- Obrasci u JavaScript
- Izjava slučaja u JavaScript-u
- Uvjetne izjave u JavaScript-u
- JavaScript objekti
- Različite vrste petlji s njenim prednostima