Introduksjon til innsetting Sorter i JavaScript
Sortering er et av de viktige konseptene som programmerere lærer å begynne sin reise innen informatikk uavhengig av hvilket programmeringsspråk du har valgt å lære. Sortering hjelper oss med å finne måldataene vi ønsker å søke på en raskere og praktisk måte, ved å sortere dem i stigende eller synkende rekkefølge.
Sorteringsalgoritmer brukes til å ordne elementer der et element kan være et tall eller en streng. Det er mange typer sorteringsalgoritmer basert på deres sorteringsmetode og tilnærmingen de følger for å sortere elementene, og hver type har sine fordeler og ulemper.
I denne bloggen vil vi fokusere på innsetting, en vanlig sortering som er lett å forstå og implementere.
Hva er Insertion Sort i JavaScript?
Insertion Sort er en enkel, lettfattelig algoritme som fungerer best med en liten dataliste ved å sortere hvert element i datalisten en etter en fra venstre til høyre retning. Det er også kjent som en sammenligningssortering der den sammenligner gjeldende verdi med de andre verdiene i den samme datalisten som blir sortert. Det følger en iterativ tilnærming for å plassere hvert element i riktig rekkefølge i datalisten.
Jo mer tid en algoritme tar å sortere, sies ytelsen å være dårlig og må vurdere en annen algoritme for å sortere dataene. Innleggssortering har en tidskompleksitet på O (n²) eller kjører kvadratisk tid for å sortere datalisten i verste fall. Dette er vanligvis ikke veldig effektivt og bør ikke brukes til store lister. Imidlertid overgår det vanligvis avanserte algoritmer som quicksort eller sammensortering på mindre lister.
Innsettingssortering, mesteparten av tiden er mer effektiv enn andre kvadratiske sorteringsalgoritmer som boble sortering eller utvalg sortering. Det beste tilfellet, tiden er O (n) eller lineær, som oppstår hvis inngangsarrayen allerede er sortert. Gjennomsnittlig er innsettingens kjøretid fremdeles kvadratisk.
I eksemplet nedenfor vil vi ha en enkel tilnærming på høyt nivå for å sortere data som er lagret i en array-datastruktur og bruke dens sorteringsmetode for å sortere dataene uten å implementere noen algoritmer.
Eksempel - Insertion Sort Algorithm
Kode:
// 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));
Produksjon:
Forklaring: I algoritmen har vi implementert 2 for løkker, den ytre for sløyfe er å iterere over matraseelementene og den indre for sløyfe brukes til å sortere arrayelementene i stigende rekkefølge av verdien. Den nåværende variabelen har den nåværende verdien av matrisen, og variabelen j er satt til en verdi mindre enn den nåværende indeksposisjonen til arrayen. Vi sjekker om det gjeldende elementet (gjeldende) er mindre enn matriseverdien på j - posisjonen (usortedData (j) ), og hvis det er sant, sorterer vi disse verdiene.
Iterasjon 1 - strøm (96): (96, 5, 42, 1, 6, 37, 21)
Iterasjon 2 - strøm (5): (5, 96, 42, 1, 6, 37, 21)
Iterasjon 3 - strøm (42): (5, 42, 96, 1, 6, 37, 21)
Iterasjon 4 - strøm (1): (1, 5, 42, 96, 6, 37, 21)
Iterasjon 5 - strøm (6): (1, 5, 6, 42, 96, 37, 21)
Iterasjon 6 - strøm (37): (1, 5, 6, 37, 42, 96, 21)
Iterasjon 7 - strøm (21): (1, 5, 6, 21, 37, 42, 96)
Det ytre for loop-iterasjon starter på 1. indeksstilling siden vi ønsker å flytte det minste elementet til venstre side, slik at vi sammenligner om det nåværende elementet er mindre enn elementene på venstre side.
Typer sortering
Typene algoritmer som brukes til å sortere data omfatter følgende konsepter eller ideer i sin tilnærming til å sortere dataene:
- Sammenligning versus ikke-sammenligningsbaserte strategier,
- Iterativ versus rekursiv implementering,
- Del-og-erobre paradigme (dette eller det),
- Tilfeldig tilnærming.
La oss se på noen eksempler:
1. Flett sortering bruker en deling og erobre tilnærming for å sortere elementer i en matrise.
2. Insertion Sort, Bubble Sort er en sammenligningsbasert sortering.
Når data blir sortert, blir det lettere å finne en optimal løsning på komplekse problemer. for eksempel,
- Søker etter en spesifikk verdi,
- Finne minimums- eller maksimumsverdien,
- Testing for unikhet og sletting av duplikater,
- Teller hvor mange ganger en spesifikk verdi har dukket opp, etc.
Konklusjon
I denne artikkelen har vi gått gjennom definisjonen av innsettingssortering og tidskompleksitet og forskjellige andre sorteringsalgoritmetyper basert på deres tilnærming. Å studere ulike sorteringsalgoritmer hjelper oss å identifisere hvilken som er bedre egnet under visse omstendigheter eller bruke saker som hjelper oss med å sortere dataene med en raskere hastighet.
Anbefalte artikler
Dette er en guide til Insertion Sort in JavaScript. Her diskuterer vi hva som er insertion sort i javascript og dens typer med eksempel. Du kan også se på følgende artikler for å lære mer -
- Mønstre i JavaScript
- Saksuttalelse i JavaScript
- Betingede uttalelser i JavaScript
- JavaScript-objekter
- Ulike typer løkker med fordelene