Cum se implementează sortarea cu bule în Python?



În acest blog, veți afla codul și explicația sortării listei unui Python folosind sortarea cu bule folosind metoda swapping.

Sortarea înseamnă aranjarea oricăror date într-o ordine crescătoare sau descrescătoare în funcție de o relație liniară între elemente. Acest articol despre Bubble Sort in vă va ajuta să înțelegeți acest concept în detaliu.

Vom acoperi subiectele de mai jos în acest blog:





Ce este Sortarea cu bule?

Sortarea cu bule este, de asemenea, cunoscută sub numele de sortare de scufundare. Este un algoritm simplu de sortare care parcurge continuu lista care urmează să fie sortată, comparând fiecare pereche de articole adiacente și schimbându-le dacă acestea nu sunt în ordinea corectă. Pașii se repetă până când nu mai sunt necesare swap-uri, care este atunci când lista este sortată.

Pași pentru efectuarea unei sortări cu bule

  • Comparați primul și al doilea element din listă și schimbați dacă acestea sunt în ordinea greșită.
  • Comparați al doilea și al treilea element și schimbați-le dacă acestea sunt în ordinea greșită.
  • Procedați în mod similar până la ultimul element al listei în mod similar.
  • Repetați în continuare toți pașii de mai sus până când lista este sortată.

Pașii de mai sus vor fi mai clari prin următoarele vizualizări -



Sortare cu bule în Python - Edureka



Algoritm de sortare cu bule

Acum să ne uităm la algoritmul din spatele Bubble Sort.

Prima trecere:

( 16.19 , 11,15,10) -> ( 16.19 , 11,15,10) - Algoritmul compară primele două elemente și swap-uri din 19> 16

cum se imprimă matricea în php

(16, 19.11 , 15.10) -> (16, 11.19 , 15.10) - Schimbați din 19> 11

(16.11, 19.15 , 10) -> (16,11, 15.19 , 10) - Schimbați din 19> 15

(16,11,15, 19.10 ) -> (16,11,15, 10.19 ) - Acum, deoarece aceste elemente sunt deja în ordinea corectă (19> 10), algoritmul nu le schimbă.

A doua trecere:

( 16.11 , 15,10,19) -> ( 11.16 , 15,10,19) - Schimb de la 16> 11

(unsprezece, 16.15 , 10.19) -> (11, 15.16 , 10,19) - Schimb de la 16> 15

(11.15, 16.10 , 19) -> (11,15, 10.16 , 19) - Schimb de la 16> 10

(11,15,10,16,19) -> (11,15,10,16,19)

este sortat, dar algoritmul nostru nu știe dacă este finalizat. Prin urmare, are nevoie de o altă trecere întreagă fără niciun swap pentru a ști că este sortată.

A treia trecere:

(unsprezece, 15.10 , 16,19) -> (11, 15.10 , 16,19)

c ++ folosind spațiul de nume

(unsprezece, 15.10 , 16,19) -> (11, 10.15 , 16,19) - Schimbați din 15> 10

(11,10,15,16,19) -> (11,10,15,16,19)

(11,10,15,16,19) -> (11,10,15,16,19)

A patra trecere:

( 11.10 , 15,16,19) -> ( 10.11 , 15,16,19) - Schimb de la 11> 10

Rezultatul final este (10,11,15,16,19)

Haideți acum să codificăm acest lucru -

Programul Python pentru implementarea sortării cu bule

a = [16, 19, 11, 15, 10, 12, 14]

# buclă repetată len (a) (număr de elemente) de câte ori pentru j în interval (len (a)): # inițial schimbat este fals schimbat = Fals i = 0 în timp ce ia [i + 1]: # schimbând un [i ], a [i + 1] = a [i + 1], a [i] #Schimbarea valorii swapped swapped = Adevărat i = i + 1 #dacă swapped este fals, atunci lista este sortată # putem opri bucla dacă este schimbat == False: tipărire ruptă (a)
 IEȘIRE: 


În codul de mai sus, comparăm numerele adiacente și le schimbăm dacă nu sunt în ordinea corectă. Repetați același proces len (a) de mai multe ori. Am atribuit o variabilă „swap” și am transformat-o în „True” dacă două elemente sunt schimbate într-o iterație. Și dacă nu există schimb de elemente, atunci lista este deja sortată și, prin urmare, nu există nicio modificare a valorii „swap” și putem rupe bucla.

Cu aceasta, ajungem la sfârșitul blogului intitulat „Cum se implementează sortarea cu bule în Python”. Sper că conținutul adaugă valoare cunoștințelor dvs. Python.

Asigurați-vă că exersați cât mai mult posibil și reveniți la experiență.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui blog „Cum se implementează sortarea cu bule în Python” și vă vom contacta cât mai curând posibil.

Pentru a obține cunoștințe aprofundate despre Python împreună cu diferitele sale aplicații, vă puteți înscrie pentru live cu suport 24/7 și acces pe viață.