Lisäys Lajittele JavaScript - Täydellinen opas lisäykseen Lajittele JavaScript

Sisällysluettelo:

Anonim

Johdanto lisäykseen Lajittele JavaScript

Lajittelu on yksi tärkeimmistä käsitteistä, jonka ohjelmoijat oppivat aloittamaan tietotekniikkamatkansa riippumatta opittavaksi valitusta ohjelmointikielestä. Lajittelu auttaa meitä löytämään etsimämme kohdetiedot nopeammalla ja helpommalla tavalla lajittelemalla ne joko nousevassa tai laskevassa järjestyksessä.

Lajittelualgoritmeja käytetään elementtien uudelleenjärjestykseen, missä elementti voi olla numero tai merkkijono. Lajittelualgoritmeja on monia tyyppejä, jotka perustuvat niiden lajittelumenetelmään ja lähestymistapaan, jota he noudattavat elementtien lajitteluun, ja jokaisella tyypillä on omat etunsa ja haittansa.

Tässä blogissa keskitymme lisäyslajitteluun, yleiseen lajitteluun, joka on helppo ymmärtää ja toteuttaa.

Mikä on Insertion Sort in JavaScript?

Lisäyslajittelu on yksinkertainen, helppo ymmärtää algoritmi, joka toimii parhaiten pienen tietolistan kanssa lajittelemalla tietolistan kaikki elementit yksi kerrallaan vasemmalta oikealle. Se tunnetaan myös vertailutyyppinä, jossa se vertaa nykyistä arvoa muihin arvoihin samassa datalistassa, jota lajitellaan. Se noudattaa iteratiivista lähestymistapaa asettaaksesi kunkin elementin oikeassa järjestyksessä tietolistaan.

Mitä enemmän aikaa algoritmin lajittelu vie, sen suorituskyvyn sanotaan olevan huono ja sen on harkittava toista algoritmia tietojen selvittämiseksi. Lisäyslajittelussa aikakompleksi on O (n²) tai se suorittaa neliömäisen ajan datalistan järjestämiseksi pahimmassa tapauksessa. Tämä ei tyypillisesti ole kovin tehokasta, eikä sitä pitäisi käyttää suurissa luetteloissa. Se kuitenkin yleensä ylittää edistyneemmät algoritmit, kuten pikavalinta tai yhdistämisjärjestys pienemmissä luetteloissa.

Lisäyslajittelu, suurin osa ajasta on tehokkaampaa kuin muut neliömäiset lajittelualgoritmit, kuten kuplalajittelu tai valintalaji. Sen paras tapaus on, että aika on O (n) tai lineaarinen, mikä tapahtuu, jos tulojärjestelmä on jo lajiteltu. Keskimäärin lisäyslajittelijan ajoaika on edelleen neliöllinen.

Seuraavassa esimerkissä meillä on helppo korkean tason lähestymistapa lajitella taulukotietorakenteeseen tallennetut tiedot ja käyttää sen lajittelumenetelmää tietojen lajitteluun ilman mitään algoritmeja.

Esimerkki - lisäyslajittelualgoritmi

Koodi:




// 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));

lähtö:

Selitys: Algoritmissa olemme toteuttaneet 2 silmukoille, silmukan ulkoinen on iteroitu ryhmäelementtien yli ja silmukan sisäosaa käytetään taulukkoelementtien lajitteluun niiden arvon nousevassa järjestyksessä. Nykyinen muuttuja pitää matriisin nykyistä arvoa ja muuttuja j asetetaan arvoon, joka on pienempi kuin taulukon nykyinen indeksipaikka. Tarkistamme onko nykyinen elementti (nykyinen) pienempi kuin taulukon arvo j: nnessä sijainnissa (lajittelematon data (j) ) ja jos se on totta, lajittelemme nämä arvot.

Iteraatio 1 - virta (96): (96, 5, 42, 1, 6, 37, 21)

Iteraatio 2 - virta (5): (5, 96, 42, 1, 6, 37, 21)

Iterointi 3 - virta (42): (5, 42, 96, 1, 6, 37, 21)

Iteraatio 4 - virta (1): (1, 5, 42, 96, 6, 37, 21)

Iteraatio 5 - virta (6): (1, 5, 6, 42, 96, 37, 21)

Iteraatio 6 - virta (37): (1, 5, 6, 37, 42, 96, 21)

Iteraatio 7 - virta (21): (1, 5, 6, 21, 37, 42, 96)

Ulompi silmukan iteraation suhteen alkaa ensimmäisestä hakemistosijainnista, koska haluamme siirtää pienimmän elementin vasemmalle puolelle, joten verrataan onko nykyinen elementti pienempi kuin sen vasemmalla puolella olevat elementit.

Lajittelulajit

Tietojen lajitteluun käytettävät algoritmit sisältävät seuraavat käsitteet tai ideat niiden lähestymistavassa tietojen lajitteluun:

  • Vertailu verrattuna vertailuperusteisiin strategioihin,
  • Iteratiivinen versio rekursiivinen toteutus,
  • Jaa ja valloita -malli (tämä tai tuo),
  • Satunnaista lähestymistapa.

Tarkastellaan muutamia esimerkkejä:

1. Yhdistämislajittelu käyttää jako-ja-valloitus -lähestymistapaa ryhmän elementtien lajitteluun.

2. Lisäyslajittelu, kuplalajittelu on vertailupohjainen lajittelu.

Kun tiedot lajitellaan, on helpompaa löytää optimaalinen ratkaisu monimutkaisiin ongelmiin. esimerkiksi,

  • Etsitään tiettyä arvoa,
  • Minimi- tai maksimiarvon löytäminen,
  • Ainutlaatuisuuden testaaminen ja kaksoiskappaleiden poistaminen,
  • Lasketaan kuinka monta kertaa tietty arvo on ilmestynyt jne.

johtopäätös

Tässä artikkelissa olemme käyneet läpi lisäyslajittelun määritelmän ja sen ajan monimutkaisuuden sekä useita muita lajittelualgoritmityyppejä niiden lähestymistavan perusteella. Eri lajittelualgoritmien opiskelu auttaa meitä tunnistamaan, mikä sopii paremmin tietyissä olosuhteissa, tai käyttämään tapauksia, jotka auttavat meitä lajittelemaan tietoja nopeammin.

Suositellut artikkelit

Tämä on opas lisäykseen. Tässä keskustellaan esimerkistä, mikä on javascriptin lisäyslajittelu ja sen tyypit. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Kuviot JavaScript
  2. Tapauslauseke JavaScriptissä
  3. Ehdollinen lausunto JavaScript-muodossa
  4. JavaScript-objektit
  5. Erityyppiset silmukat ja sen edut