Bubble Sort i JavaScript

Bubble Sort i JavaScript

Bubble Sort er en av de enkleste sorteringsalgoritmene som sammenligner to side om side elementer og sorterer matrisen i enten stigende rekkefølge eller i synkende rekkefølge. Tallrike algoritmer er tilgjengelige for å sortere matriser, for eksempel utvalgssort og fletting, etc. I denne artikkelen lærer vi hvordan du bruker boble -sortering for å sortere matriseelementene.

La anta at vi har en usortert matrise, og vi blir bedt om å sortere matrisen i enhver tiltenkt ordre (i.e. stigende, eller synkende). Så har vi flere sorteringsalgoritmer, for å sortere den arrayen som boble -sortering, innsetting, etc. For dette formålet kan vi bruke noen av disse algoritmene siden alle algoritmene vil gi samme resultat. Denne artikkelen vil adressere boblen sort med eksempler.

Arbeid av boble sort

Det begynner å fungere ved å sammenligne venstre indeks med høyre indeks. Til å begynne med vil den sammenligne de to første indeksene for matrisen (verdien plassert ved indeks 0 vil bli sammenlignet med verdien plassert ved indeks 1). Verdien av 0th -indeksen vil bare bli erstattet når 1. indeks har en mindre verdi enn 0th Indexs verdi. Deretter vil det sammenligne verdien av indeks 1 med verdien av indeks 2, og så videre.

Anta at vi har følgende usorterte matrise:

Vi vet at i matriser starter indeksering fra 0. Så til å begynne med, ved indeks 0 er verdien 8. Verdien av indeks 1 er 3, og 1 er plassert ved indeks 3, og så videre. Nå må vi sortere denne matrisen i stigende rekkefølge som vist i den undergitte arrayen:

Nå vil vi forklare arbeidet med boble sort trinn for trinn.

Trinn 1:

I begynnelsen bærer indeks 0 8 mens indeks 1 bærer 3. Siden vi må sortere matrisen i stigende rekkefølge, vil derfor verdien av indeks 0 erstattes med verdien av indeks 1. Nå vil den oppdaterte matrisen være:

Nå vil verdien av indeks 1 sammenlignes med verdien av indeks 2. Verdien av indeks 1 er 8 mens verdien av indeks 2 er 1 som er mindre enn 8, så den vil bli byttet og matrisen blir endret som:

Nå vil vi gjøre en sammenligning mellom indeks 2 og indeks 3. Verdien av indeks 2 er 8 som er større enn verdien av indeks 3 som er 2, så verdiene vil bli byttet:

Nå sammenligne verdien av indeks 3 med verdien av indeks 4. Ved indeks 3 er verdien 8 mens indeks 4 -verdien er -1, noe som betyr at begge disse verdiene vil bli byttet:

Til slutt vil verdien av indeks 4 sammenlignes med verdien av indeks 5. Igjen er 8 større enn 7, så vil den bli erstattet med 7:

Nå er den første iterasjonen fullført, og “8” når sin passende posisjon. Så i neste trinn vil sammenligningene bli gjort til den fjerde indeksen siden verdien av den siste indeksen er sortert.

Steg 2:

Nå vil de to første indeksene bli sammenlignet. Verdien av 1. indeks er mindre enn verdien av 0th -indeksen, derfor vil det bli byttet ut:

Deretter vil vi sammenligne verdien av 1. indeks med verdien av 2. indeks. Her er 3 større enn 2, og den vil bli erstattet med 2:

Nå vil vi sammenligne verdien av 2. indeks i.e. 3 med verdien av 3. indeks som er -1. Verdiene vil bli byttet igjen siden 3 er større enn -1:

Verdien av 3. indeks er mindre enn verdien av den fjerde indeksen, så den vil forbli den samme:

Nå er de to siste indeksene sortert, og verdiene plasseres riktig på 4. og 5. indekser.

Trinn 3:

Nå i denne iterasjonen vil først verdien av 0th -indeksen sammenlignes med verdien av 1. indeks. Her er verdien av 0th -indeksen 1 som er mindre enn verdien av 1. indeks som er 2. Så disse verdiene vil forbli de samme.

Deretter kan du sammenligne de to neste indeksene, her er verdien av den første indeksen større enn verdien av den andre indeksen, derfor vil verdiene deres bli byttet:

Verdien av den andre indeksen er mindre enn verdien av 3. indeks. Derfor vil deres verdier ikke bli byttet:

Trinn 4:

Sammenlign de to første indeksene. Verdien av 0th -indeksen er -1, mindre enn verdien av 1. indeks som er 1, så den vil bli byttet:

Deretter vil vi sammenligne verdien av 1. indeks med verdien av 2. indeks. De er allerede sortert, så de vil forbli de samme:

Endelig blir vår matrise sortert i stigende rekkefølge.

Implementering av boble -sortering i JavaScript

Siden vi forsto hvordan Bubble Sort fungerer, vil vi nå implementere denne logikken i JavaScript ved hjelp av nestede løkker:

funksjon Bubblesort (ary)
la jeg, j;
var flagg = falsk;
for (i = 0; i < ary.length; i++)

flagg = falsk;
for (j = 0; j ary [j + 1])

var temp = ary [j]
ary [j] = ary [j+1];
ary [j+1] = temp;
flagg = sant;


hvis(!flagg)

gå i stykker;


konsoll.Logg (ary)

var ary = [8, 3, 1, 2, -1, 7];
Bubblesort (ary);

I den ovennevnte koden opprettet vi en matrise som heter 'ary' og tildelte noen data til den. Så opprettet vi en funksjon som heter Bubblesort, og vi ga matrisen til den. En variabel med navnet 'Flag' er opprinnelig tilordnet en verdi 'False'. Deretter initialiseres for-loopen med 0, og den vil utføres til den er mindre enn matriselengden. Nestede for-løkker brukes til å trekke en sammenligning av verdien ved gjeldende indeks med verdien ved den tilstøtende indeksen, vil verdiene bare byttes hvis verdien av gjeldende indeks er høyere enn verdien som er til stede på den tilstøtende indeksen. Verdien av flagget vil bli erstattet med True hvis en verdi byttes under iterasjon. Endelig kalles matrisen ved hjelp av Bubblesort -funksjonen. Utgangen vil være:

Konklusjon

Bubble Sort er en grunnleggende sorteringsalgoritme som bytter side om side elementer om og om igjen til de ikke er i riktig rekkefølge. I denne artikkelen presenterte vi all det grunnleggende og essensielle kunnskap som trengs for å forstå begrepet boble -sortering i JavaScript. Begynner med introduksjonen som beskrev hva boble -sort er og hvordan den fungerer. Så tok vi et eksempel for å forstå begrepet boble sort. Videre implementerte vi det samme eksemplet i JavaScript og diskuterte dets arbeid i detalj.