Bubble Sort in Python - Verklaring van Bubble-soort met voorbeeldcode

Inhoudsopgave:

Anonim

Inleiding tot Bubble Sort in Python

Bubbelsortering is een eenvoudig en logisch sorteeralgoritme. Het werkingsprincipe is gebaseerd op het recursief verwisselen van aangrenzende elementen als de volgorde onjuist is. In dit onderwerp gaan we meer te weten komen over Bubble Sort in Python.

Bubbelsoort wordt ook wel Sinking sort, Ripple sort genoemd.

Laten we het door een voorbeeld bekijken:

Eerste loop

( 6 1 4 3) -> ( 1 6 4 2): Hier worden de eerste twee elementen verwisseld als de volgorde niet correct is.

(1 6 4 2) -> (1 4 6 2): hier worden de volgende twee elementen verwisseld als de volgorde niet correct is.

(1 4 6 2 ) -> (1 4 2 6 ): Hier worden de volgende twee elementen verwisseld als de volgorde niet correct is.

Tweede run

( 1 4 2 6) -> ( 1 4 2 6): Hier worden de eerste twee elementen vergeleken, maar deze werden niet verwisseld omdat de volgorde correct is.

(1 4 2 6) -> (1 2 4 6): Hier worden de volgende twee elementen verwisseld, omdat de volgorde niet correct was.

(1 2 4 6 ) -> (1 2 4 6 ): Hier worden de laatste twee elementen vergeleken, maar niet geruild zoals de volgorde is

Nu weten we dat de array er gesorteerd uitziet, maar één run is vereist zonder enige swap naar het algoritme om te weten of sorteren is uitgevoerd.

Derde run

( 1 2 4 6) -> ( 1 2 4 6): Geen twee elementen wisselen.

(1 2 4 6) -> (1 2 4 6): Geen omwisseling in de volgende twee elementen.

(1 2 4 6 ) -> (1 2 4 6 ): Geen omwisseling in de laatste twee elementen.

Omdat er in geen enkel stadium swaps plaatsvonden, begrijpt het algoritme nu dat sorteren perfect is.

Bubbelsoort heeft zijn naam gekregen omdat elementen omhoog gaan in de juiste volgorde, zoals bellen die naar de oppervlakte opstijgen.

Bubbelsoort in Python Language

Laten we nu eens kijken naar de logische implementatie van bellen sorteren via python. Python is tegenwoordig een veel gebruikte taal. Als u het begrijpt via python, krijgt u zeker het vertrouwen dat u het ook in andere talen kunt schrijven.

Python-code

def bubble_Sort(arr):
m = len(arr)
# Traverse through all the array elements
for u in range(m):
for v in range(0, mu-1):
# traverse the array from 0 to mu-1
# Swap if the element is greater than adjacent next one
if arr(v) > arr(v+1) :
arr(v), arr(v+1) = arr(v+1), arr(v)

Om de reeks na bellen te sorteren, moet u de volgende code gebruiken:

for i in range(len(arr)):
print("%d" %arr(i)),
Here arr will be your array.

Verklaring van Python-code

Hier is "m" de lengte van de array. Twee voor lussen bevatten de werkelijke grondlogica, waarbij "u" het eerste element vertegenwoordigt, terwijl "v" het tweede vertegenwoordigt waarmee het eerste element moet worden vergeleken om te wisselen als de sorteervolgorde tussen beide niet correct is.

"Arr (v)> arr (v + 1)" dit vertegenwoordigt de vergelijking van opeenvolgende elementen, als het eerste element groter is dan het tweede element, wordt de wisselbewerking uitgevoerd door de volgende uitdrukking:

Dat is "arr (v), arr (v + 1) = arr (v + 1), arr (v)".

Deze uitwisseling wordt swap genoemd. Het goede deel is dat er geen tijdelijk geheugen nodig is voor dit soort swap-bewerking.

"U" vertegenwoordigt de lus van elke run, terwijl "v" fasen van elke fase vertegenwoordigt. Er kan naar een voorbeeld in de bovenstaande sectie worden verwezen.

Na het uitvoeren van de bubbelsortering ziet u de gesorteerde array, met onderstaande code:

for i in range(len(arr)):
print ("%d" %arr(i)),

Laten we eens kijken hoe dit zich gedraagt ​​in Python IDE, voor een beter begrip:

Output:

Er zijn een paar feiten over Bubble Sort, die iedereen moet weten voordat hij deze implementeert:

  1. Een bubbelsoort wordt vaak beschouwd als een niet-goede efficiënte sorteermethode. Omdat het de items moet ruilen totdat de definitieve locatie bekend is. Dit alles leidt tot verspilling van operaties en dus zeer kostbaar. Dit algoritme passeert elk element, waar sorteren vereist of niet vereist is. Zodra de run zonder swap is geslaagd, wordt de bubbelsoort als voltooid beschouwd.
  2. Dit is de eenvoudigste van alle gegevensstructuren, voor elke beginner geeft dit een goed vertrouwen. Het is gemakkelijk te construeren en te begrijpen.
  3. Het kost veel tijd en geheugen.
  4. Dit wordt beschouwd als een stabiel algoritme, omdat het de relatieve volgorde van elementen behoudt.
  5. Wordt als goed beschouwd voor een kleine reeks / lijst. Het is echter een slecht idee om het voor lange te gebruiken.

Conclusie

Als je de bovenstaande inhoud van bellen sorteren doorneemt, zou je een kristalhelder begrip van dit sorteeralgoritme, gespecialiseerd in python, hebben kunnen krijgen. Als je eenmaal vertrouwd bent geraakt met de logica van de bubbelsoort, zal het begrijpen van de andere set gegevensstructuren dan gemakkelijker zijn. Een logische benadering is de enige manier om uit te blinken op het gebied van datastructuur. Eerst de logica van datastructuuralgoritme in elke fase begrijpen en vervolgens de code ervan targeten via Python of in een andere taal zou de manier moeten zijn.

Aanbevolen artikelen

Dit is een gids voor Bubble Sort in Python. Hier bespreken we de logische implementatie van bellen sorteren via python-code met de uitleg. U kunt ook het volgende artikel bekijken voor meer informatie -

  1. Lussen in Python
  2. Python-bestandsbewerkingen
  3. Palindrome in Python
  4. 3D-arrays in Python
  5. Python-functies
  6. Ruilen in PHP
  7. 3D-arrays in C ++
  8. Palindrome in C ++
  9. Palindrome in JavaScript
  10. Hoe arrays en lijsten werken in Python?