Bubble Sort i JavaScript

Bubble Sort i JavaScript
La anta at vi har en usortert matrise, og vi blir bedt om å sortere matrisen i en stigende eller synkende rekkefølge. Bubble Sort er en av de enkleste sorteringsalgoritmene som sammenligner to side-for-side-elementer og sorterer matrisen. 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.

Arbeid av boble sort

Anta at vi vil sortere vårt utvalg i stigende rekkefølge. Det begynner å fungere ved å sammenligne venstre indeks med høyre indeks. Til å begynne med vil det sammenligne verdiene til de to første indeksene i matrisen. 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å innledningsvis, “8” lagres ved 0. indeksen, “3” lagres ved første indeks, "1" lagres ved den andre indeksen, 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. og 3. indeks I.e. 3 (ved 2. indeks) 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 allerede 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 allerede 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 allerede mindre enn verdien av 3. indeks, og deres verdier vil ikke bli byttet ut:

Trinn 4:

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

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:

FunctionBubblesort (ary)
leti, j;
varflag = falsk;
for (i = 0; i
flagg = falsk;
for (j = 0; jary [j + 1])

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


hvis(!flagg)

gå i stykker;


konsoll.Logg (ary)

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

I den ovennevnte koden opprettet vi en rekke som heter 'ary' og tildelte noen data til det. Etterpå opprettet vi en funksjon som heter Bubblesort Og vi ga matrisen til det. En variabel navngitt 'flagg' er opprinnelig tilordnet en verdi 'falsk'. Dette flagget vil bli brukt til å bekrefte om matrisen er sortert helt ut eller ikke. Deretter initialiseres for-loopen med 0, og den vil utføres til den er mindre enn matriselengden.

Nested for-loop 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 tilstøtende ved den tilstøtende indeksen. Verdien av flagget vil bli erstattet med sant hvis noen verdi byttes under iterasjon.

Når den indre sløyfen er ferdig, blir flaggvariabelen sjekket. Hvis flaggvariabelen forblir falsk, betyr det at matrisen allerede er sortert ut og den indre sløyfen ikke har endret noe. I et slikt tilfelle, bare bryte sløyfen.

Endelig sendes matrisen til Bubblesort () funksjon. 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.