Bubble Sort Javascript

| | | |

Hoe schrijf je een JavaScript-bubbelspreuk

Heeft u een lijst met waarden die u moet sorteren? Het sorteren van bubbels zou iets voor jou kunnen zijn. Bubbelsoorten vergelijken aangrenzende items in een lijst en wisselen hun posities als ze niet in de juiste volgorde staan.

In deze gids gaan we het hebben over wat voor soort bubbels zijn en hoe ze werken. We zullen zien hoe je een Bubble Sort in JavaScript schrijft, zodat je snel aan de slag kunt met dit genre.

Laten we beginnen!

Wat is een JavaScript Bubble Sort?

Een soort bubbel, of `sort damping`, is een eenvoudig sorteeralgoritme dat een paar aangrenzende items in een lijst vergelijkt. Als een element niet in orde is, verwisselen we het element met het vorige. Anders blijft het item op dezelfde locatie.

Tri Bubble kreeg zijn naam omdat het door een lijst bladert en alle belangrijkste waarden naar het einde verplaatst. Een andere manier om hierover na te denken is dat de grootste waarden "opborrelen" aan het einde van de lijst. Bellensoorten werken in zowel oplopende als aflopende volgorde

Er zijn twee soorten bellen: .. Regelmatig en geoptimaliseerd

Regelmatige soorten bellen maken alle mogelijke vergelijkingen, het maakt niet uit of een array wordt gesorteerd. Soorten geoptimaliseerde bubbels worden niet meer weergegeven aan het einde van een iteratie als er geen verwisseling heeft plaatsgevonden.

Bubble Sort JavaScript-procedure

We beginnen met te praten over hoe de bubbelsortering werkt, en implementeer er vervolgens een in JavaScript. Bekijk de volgende lijst met elementen:

9 3 2 11

Om te beginnen ons genre, zullen we het eerste en tweede nummer vergelijken. Als het eerste getal groter is dan het tweede getal, wisselen we de elementen om. Anders blijven de elementen op dezelfde positie staan

9 is groter dan 3 zodat de posities van de eerste twee elementen verwisselen:

3 < / td> 9 12 2

Dit het proces gaat door totdat alle items in de lijst zijn vergeleken.

9 is niet groter dan 12, dus deze items blijven op dezelfde plaats. 12 is groter dan 2, dus deze elementen wisselen:

< table class = "wp-bloc en table-info table">
3 9 2 12

Onze lijst begint te lijken schoner. Ons algoritme herhaalde de lijst één keer. Dat zal zo blijven totdat we elk item gaan bestellen. In de volgende iteratie maakt ons programma de volgende vergelijkingen:

  • is 3 groter dan 9? Nee, er gebeurt niets.
  • 9 is groter dan 2? Ja, dus de items wisselen.
  • 9 is groter dan 12? Nee, er gebeurt niets.

Na deze iteratie ziet onze lijst er als volgt uit:.

< tr>
3 2 9 12 We zijn er bijna. In de volgende iteratie verwisselen we de eerste twee items, wat ons een complete geordende lijst geeft:

We hebben het gedaan! We hebben een lijst gecategoriseerd met behulp van bellensortering. Nu komt het lastige deel:. Het ontwikkelingswerk van dit algoritme in JavaScript

Hoe schrijf je een algoritme voor het sorteren van bubbels in JavaScript

We kunnen een algoritme voor het sorteren van JavaScript-bubbels schrijven. We gaan twee soorten bubbels maken: een normale sortering en een optimalisatie van een

gewone bubbelsortering

Laten we beginnen met het definiëren van een JavaScript-functie die onze bubbelsortering uitvoert:

Deze functie accepteert een reeks getallen en sorteert met behulp van het bellensorteeralgoritme . Om te beginnen maakt het algoritme een lus die door elk element van de lijst gaat

Onze code gebruikt het kenmerk length van de array om de lengte van de lijst te berekenen. , Vervolgens declareren we een andere lus. Deze lus maakt vergelijkingen tussen elk item in de list.

Voor elke iteratie van onze inner loop voert ons programma een if-statement uit. Dit JavaScript if-statement controleert of het getal links van een vergelijking is groter dan het getal aan de rechterkant. In dit geval verwisselt ons programma de getallen. Anders gebeurt er niets.

retourneert de array naar het hoofdprogramma nadat we ze hebben gesorteerd. Laten we onze functie aanroepen en geven het is een voorbeeldarray:

We hebben verklaard JavaSc-variabelen ript genaamd numbersToSort die de cijfers bevat die we willen bestellen. We hebben toen onze sortItems () methode aangeroepen en die variabele als parameter aangenomen. Dit sorteert onze lijst. We printen de nieuwe geordende lijst in de JavaScript-console van de browser :. [2, 3, 9, 11]

ORDERS van onze lijst coderen in oplopende volgorde. We kunnen dit gedrag veranderen door de waarde "groter dan" te vervangen om toegang te krijgen tot onze "if"-declaratie door een "min"-teken:

We zijn bijna klaar! Laten we onze code efficiënter maken door de sorteerballon te implementeren met een verwisselde variabele.

geoptimaliseerde bubbel Sorteren

geoptimaliseerde bubbel geïntroduceerd Sorteer een nieuwe variabele. Deze variabele houdt bij of de beurs is gehouden. Tri stop als er geen swap heeft plaatsgevonden

Om onze genre-bubbel efficiënter te maken, vervangen we onze buitenste voor de lus door een while-lus:

De while-lus wordt uitgevoerd totdat "swapped" false is. Standaard is de waarde van "portemonnee" waar. In elke iteratie van onze lijst hebben we de waarde van "swapped" ingesteld op false. Als er een swap plaatsvindt, geeft de waarde van "swapped" true terug

hiermee kunnen we bijhouden of een uitwisseling is gedaan in een iteratie. Als er geen uitwisseling is gedaan, betekent dit dat onze lijst is gesorteerd. in dit geval kunnen we onze bubbelsortering stoppen.

Probeer de sortering van deze bubbel te gebruiken:

Onze code retourneert:. [2, 3, 9, 11] lijst is gesorteerd. dit algoritme is efficiënter omdat het geen onnodige vergelijkingen uitvoert. zodra de lijst is gesorteerd, werkt het algoritme niet meer.

Conclusie

Soorten bubbels zijn een gemakkelijke manier om een C te sorteren vergelijk de lijst met aangrenzende items in een lijst of verwissel ze en als ze niet in de juiste volgorde staan.

Er zijn efficiëntere soorten beschikbaar, zoals sorteer invoegen of sorteer samenvoegen. Deze typen zijn geavanceerder. Soorten bubbels zijn meestal de beste manier om te leren over sorteeralgoritmen.

Lees voor meer informatie over codering in JavaScript onze Hoe JavaScript te leren Help .