Come implementare Bubble Sort in Python?



In questo blog imparerai il codice e la spiegazione dell'ordinamento di un elenco di Python utilizzando il Bubble sort utilizzando il metodo di scambio.

Ordinare significa disporre i dati in un ordine crescente o decrescente secondo una relazione lineare tra gli elementi. Questo articolo su Bubble Sort in formato ti aiuterà a capire questo concetto in dettaglio.

Tratteremo i seguenti argomenti in questo blog:





Cos'è Bubble Sort?

Bubble sort è anche noto come sinking sort. Si tratta di un semplice algoritmo di ordinamento che scorre continuamente l'elenco da ordinare, confrontando ogni coppia di elementi adiacenti e scambiandoli se non sono nell'ordine corretto. I passaggi vengono ripetuti fino a quando non sono più necessari scambi, ovvero quando l'elenco viene ordinato.

Passaggi per eseguire un Bubble Sort

  • Confronta il primo e il secondo elemento nell'elenco e scambiali se sono nell'ordine sbagliato.
  • Confronta il secondo e il terzo elemento e scambiali se sono nell'ordine sbagliato.
  • Procedi in modo simile fino all'ultimo elemento dell'elenco in modo simile.
  • Continua a ripetere tutti i passaggi precedenti finché l'elenco non viene ordinato.

I passaggi precedenti saranno più chiari dalle seguenti visualizzazioni:



Bubble sort in Python - Edureka



Algoritmo di ordinamento delle bolle

Ora guardiamo l'algoritmo dietro Bubble Sort.

Primo passaggio:

( 16.19 , 11,15,10) -> ( 16.19 , 11,15,10) - L'algoritmo confronta i primi due elementi e gli swap da 19> 16

(16, 19.11 , 15.10) -> (16, 11.19 , 15.10) - Swap dal 19> 11

(16.11, 19.15 , 10) -> (16,11, 15.19 , 10) - Swap da 19> 15

(16,11,15, 19.10 ) -> (16,11,15, 10.19 ) - Ora, poiché questi elementi sono già nell'ordine corretto (19> 10), l'algoritmo non li scambia.

Secondo passaggio:

( 16.11 , 15,10,19) -> ( 11.16 , 15,10,19) - Swap da 16> 11

( undici, 16.15 , 10.19) -> (11, 15.16 , 10,19) - Swap da 16> 15

(11.15, 16.10 , 19) -> (11,15, 10.16 , 19) - Swap da 16> 10

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

Il è ordinato, ma il nostro algoritmo non sa se è stato completato. Quindi, ha bisogno di un altro intero passaggio senza nessuno scambio per sapere che è ordinato.

Terzo passaggio:

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

( undici, 15.10 , 16,19) -> (11, 10.15 , 16,19) - Scambia da 15> 10

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

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

Quarto passaggio:

( 11.10 , 15,16,19) -> ( 10.11 , 15,16,19) - Scambia da 11> 10

L'output finale è (10,11,15,16,19)

Cerchiamo ora di codificare questo -

Programma Python per implementare Bubble Sort

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

#repeating loop len (a) (numero di elementi) numero di volte per j nell'intervallo (len (a)): #initially swapped is false swapped = False i = 0 while ia [i + 1]: #swapping a [i ], a [i + 1] = a [i + 1], a [i] #Modifica il valore di swapped swapped = True i = i + 1 #se swapped è falso, allora l'elenco è ordinato #possiamo interrompere il ciclo se scambiato == Falso: interrompi stampa (a)
 PRODUZIONE: 


Nel codice sopra, confrontiamo i numeri adiacenti e li scambiamo se non sono nell'ordine corretto. Ripeti lo stesso processo per un numero di volte (a). Abbiamo assegnato una variabile 'scambiata' e l'abbiamo resa 'Vero' se due elementi vengono scambiati in un'iterazione. E se non vi è scambio di elementi, l'elenco è già ordinato e quindi non vi è alcun cambiamento nel valore di 'scambiato' e possiamo interrompere il ciclo.

Con questo, arriviamo alla fine del blog intitolato 'Come implementare Bubble Sort in Python'. Spero che il contenuto abbia aggiunto valore alla tua conoscenza di Python.

Assicurati di esercitarti il ​​più possibile e di ripristinare la tua esperienza.

Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog 'Come implementare Bubble Sort in Python' e ti risponderemo il prima possibile.

tutorial sui big data per principianti

Per ottenere una conoscenza approfondita di Python e delle sue varie applicazioni, puoi iscriverti a live con supporto 24 ore su 24, 7 giorni su 7 e accesso a vita.