Introduktion til Bubble Sort i Python
Bubblesortering er en enkel og logisk sorteringsalgoritme. Dets arbejdsprincip er baseret på rekursivt at udskifte tilstødende elementer, hvis ordren er forkert. I dette emne skal vi lære om Bubble Sort i Python.
Boblesorter kaldes sommetider også synkende sortering, Ripple sort.
Lad os se det gennem et eksempel:
Første løb
( 6 1 4 3) -> ( 1 6 4 2): Her 1ste to elementer udskiftes, hvis ordren ikke er korrekt.
(1 6 4 2) -> (1 4 6 2): Her udskiftes de næste to elementer, hvis ordren ikke er korrekt.
(1 4 6 2 ) -> (1 4 2 6 ): Her udskiftes de næste to elementer, hvis ordren ikke er korrekt.
Anden løb
( 1 4 2 6) -> ( 1 4 2 6): Her sammenlignes første st to elementer, men byttes ikke, da ordren er korrekt.
(1 4 2 6) -> (1 2 4 6): Her udskiftes de næste to elementer, da ordren ikke var korrekt.
(1 2 4 6 ) -> (1 2 4 6 ): Her sammenlignes de to sidste elementer, men byttes ikke som ordren er
Nu ved vi, at matrixen ser sorteret ud, men der kræves en kørsel uden nogen swap, til algoritmen for at vide, om sortering udføres.
Tredje løb
( 1 2 4 6) -> ( 1 2 4 6): Ingen bytte i 1 m to elementer.
(1 2 4 6) -> (1 2 4 6): Ingen bytte i de næste to elementer.
(1 2 4 6 ) -> (1 2 4 6 ): Ingen bytte i de to sidste elementer.
Da der ikke forekom nogen swaps på noget tidspunkt, forstår algoritmen nu sortering perfekt.
Boblesortering har fået sit navn, fordi elementer bevæger sig op i den rigtige rækkefølge, som er som bobler, der stiger op til overfladen.
Boblesortering på Python-sprog
Lad os nu se den logiske implementering af boble sortering gennem python. Python er et meget udbredt sprog i disse dage. At forstå det gennem python vil helt sikkert give dig selvtillid til at kunne skrive det også på andre sprog.
Python-kode
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)
For at udskrive array efter boble sortering skal du følge kode:
for i in range(len(arr)):
print("%d" %arr(i)),
Here arr will be your array.
Forklaring af Python-kode
Her er "m" længden på arrayet. To for sløjfer har den faktiske jordlogik, hvor "u" repræsenterer det første element, mens "v" repræsenterer det andet, som det første element skal sammenholdes for at skifte, hvis sorteringsrækkefølgen mellem begge dele ikke er korrekt.
"Arr (v)> arr (v + 1)" dette repræsenterer sammenligningen af på hinanden følgende elementer, hvis det første element er større end det andet element, udveksles operation ved at følge udtryk:
Det er "arr (v), arr (v + 1) = arr (v + 1), arr (v)".
Denne udvekslingsoperation kaldes swap. Den gode del er, at der ikke kræves midlertidig hukommelse til denne type swap-operation.
“U” repræsenterer løkken for hvert løb, mens “v” repræsenterer etaper i hvert trin. Et eksempel i ovenstående afsnit kan henvises til.
Efter at have udført boble sortering, kan man se den sorterede matrix med koden nævnt nedenfor:
for i in range(len(arr)):
print ("%d" %arr(i)),
Lad os se, hvordan dette opfører sig i Python IDE for en dybere forståelse:
Produktion:
Der er nogle få fakta om Bubble Sort, som alle burde vide, før de implementerer den:
- En boble sortering betragtes ofte som en ikke god effektiv sorteringsmetode. Da det er nødt til at udveksle emnerne, indtil deres endelige placering er kendt. Alt dette fører til spild af operationer og dermed meget dyre. Denne algoritme passerer hvert eneste element, hvor sortering kræves eller ikke kræves. Når løbet passerer uden nogen swap, betragtes boble sortering som afsluttet.
- Dette er den enkleste blandt alle datastrukturer, for enhver nybegynder giver dette god selvtillid. Det er let at konstruere og forstå.
- Det bruger en masse tid og hukommelse.
- Dette betragtes som en stabil algoritme, da den bevarer den relative rækkefølge af elementer.
- Betraktes som god til lille matrix / liste. Det er dog en dårlig idé at bruge det til lange.
Konklusion
Ved at gennemgå ovenstående indhold af boblesortering, kunne man have fået krystalklar forståelse af denne sorteringsalgoritme, specialiseret med python. Når man først bliver komfortabel med logikken med boble-sortering, bliver det lettere at forstå det andet sæt af datastrukturer. En logisk tilgang er den eneste måde at udmærke sig inden for datastrukturen. Vejen skal først forstå logikken i datastrukturalgoritmen på hvert trin og derefter målrette dens kode gennem Python eller på et hvilket som helst andet sprog.
Anbefalede artikler
Dette er en guide til Bubble Sort i Python. Her diskuterer vi den logiske implementering af boble sortering gennem python kode med forklaringen. Du kan også se på den følgende artikel for at lære mere -
- Sløjfer i Python
- Python-filoperationer
- Palindrome i Python
- 3d arrays i Python
- Python-funktioner
- Udskiftning af PHP
- 3D-arrays i C ++
- Palindrome i C ++
- Palindrome i JavaScript
- Hvordan Arrays og lister fungerer i Python?