Sorta mjehurića u Pythonu - Objašnjenje sorte mjehurića s uzorkom koda

Sadržaj:

Anonim

Uvod u Bubble Sort in Python

Sorta mjehurića jednostavan je i logičan algoritam sortiranja. Načelo njegova rada temelji se na rekurzivnoj izmjeni susjednih elemenata ako je nalog netočan. U ovoj ćemo temi upoznati Bubble Sort in Python.

Sorta mjehurića ponekad se također naziva i vrsta potonuća, vrsta Ripple.

Pogledajmo to kroz primjer:

Prvo trčanje

( 6 1 4 3) -> ( 1 6 4 2): Ovdje se zamjenjuju prva dva elementa ako poredak nije točan.

(1 6 4 2) -> (1 4 6 2): ovdje se zamjenjuju sljedeća dva elementa ako poredak nije točan.

(1 4 6 2 ) -> (1 4 2 6 ): ovdje se zamjenjuju sljedeća dva elementa ako poredak nije točan.

Druga vožnja

( 1 4 2 6) -> ( 1 4 2 6): Ovdje se uspoređuju prva dva elementa, ali ne i zamijeniti jer je redoslijed točan.

(1 4 2 6) -> (1 2 4 6): Ovdje se zamjenjuju sljedeća dva elementa jer poredak nije bio točan.

(1 2 4 6 ) -> (1 2 4 6 ): Ovdje se uspoređuju posljednja dva elementa, ali nisu se zamijenili onako kako je red

Sada znamo da niz izgleda razvrstano, međutim, potrebna je jedna vožnja bez ikakvog swapa, algoritmu da bismo znali je li sortiranje izvršeno.

Treća vožnja

( 1 2 4 6) -> ( 1 2 4 6): Nema zamjene u prva dva elementa.

(1 2 4 6) -> (1 2 4 6): Nema zamjene u sljedeća dva elementa.

(1 2 4 6 ) -> (1 2 4 6 ): Nema zamjene u zadnja dva elementa.

Kako se nijedna zamjena nije dogodila, sada algoritam shvaća da je sortiranje savršeno.

Sorta mjehurića dobila je ime po tome što se elementi kreću prema pravilnom redoslijedu, poput mjehurića koji se uzdižu na površinu.

Vrsta mjehurića na jeziku Python

Pogledajmo sada logičnu provedbu sortiranja mjehurića kroz python. Python je ovih dana vrlo rabljeni jezik. Razumijevanje kroz python zasigurno će vam dati samopouzdanje da biste ga mogli napisati i na bilo kojim drugim jezicima.

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)

Za ispis niza nakon razvrstavanja oblačića potreban vam je sljedeći kod:

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

Objašnjenje Python koda

Ovdje je "m" duljina polja. Dvije za petlje sadrže stvarnu logiku mase, pri čemu „u” predstavlja prvi element, dok „v” predstavlja drugi s kojim se prvi element mora uspoređivati ​​za zamjenu ako redoslijed sortiranja između obje nije točan.

"Arr (v)> arr (v + 1)" ovo predstavlja usporedbu uzastopnih elemenata, ako je prvi element veći od drugog elementa, operacija razmjene izvest će se sljedećim izrazom:

To je „arr (v), arr (v + 1) = arr (v + 1), arr (v)“.

Ta se operacija razmjene naziva swap. Dobar dio nije privremeno memoriranje za ovu vrstu razmjene.

"U" predstavlja petlju svakog pokreta, dok "v" predstavlja faze svake faze. Može se navesti primjer u gornjem odjeljku.

Nakon izvođenja mjehurića možete vidjeti sortirani niz sa dolje navedenim kodom:

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

Pogledajmo kako se to ponaša u Python IDE-u za dublje razumijevanje:

Izlaz:

Postoji nekoliko činjenica o Bubble Sort, koje bi svi trebali znati prije nego što ga primijene:

  1. Sorta mjehurića često se smatra nedovoljno učinkovitom metodom sortiranja. Kako mora razmjenjivati ​​predmete dok se ne zna njezino konačno mjesto. To sve vodi do rasipanja operacija, a samim tim i vrlo skupo. Ovaj algoritam prolazi kroz svaki element, gdje je potrebno sortiranje ili nije. Jednom kada prolazak prođe bez ikakvih izmjena, vrsta mjehurića smatra se dovršenom.
  2. Ovo je najjednostavnije među svim podatkovnim strukturama, za svakog početnika ovo pruža dobro pouzdanje. Lako je konstruirati i razumjeti.
  3. Koristi puno vremena i memorije.
  4. Ovo se smatra stabilnim algoritmom, jer čuva relativni poredak elemenata.
  5. Smatra se dobrim za mali niz / popis. Međutim, loša je ideja koristiti ga za duge.

Zaključak

Prolazeći kroz gornji sadržaj sorte mjehurića, moglo se dobiti kristalno jasno razumijevanje ovog algoritma sortiranja, specijaliziranog za python. Jednom kad se netko udovolji logici sortiranja mjehurića, razumijevanje drugog skupa podataka tada će biti lakše. Logički pristup jedini je način postizanja uspjeha u području strukture podataka. Prvo bi trebalo biti razumijevanje logike algoritma strukture podataka u svakoj fazi, a zatim ciljanje njenog koda putem Pythona ili na bilo kojem drugom jeziku.

Preporučeni članci

Ovo je vodič za Bubble Sort in Python. Ovdje ćemo razgovarati o logičkoj provedbi sorte mjehurića kroz python kod s objašnjenjem. Možete pogledati i sljedeći članak da biste saznali više -

  1. Petlje u Pythonu
  2. Operacije datoteka Python-a
  3. Palindrome u Pythonu
  4. 3d nizovi u Pythonu
  5. Značajke Pythona
  6. Zamjena u PHP-u
  7. 3D nizovi u jeziku C ++
  8. Palindrome u C ++
  9. Palindrome u JavaScriptu
  10. Kako nizovi i popisi rade u Pythonu?