Introduzione a Bubble Sort in Python
Bubble sort è un algoritmo di ordinamento semplice e logico. Il suo principio di funzionamento si basa sullo scambio ricorsivo di elementi adiacenti se l'ordine non è corretto. In questo argomento, impareremo l'ordinamento delle bolle in Python.
L'ordinamento a bolle a volte indicato anche come ordinamento di affondamento, ordinamento a catena.
Vediamolo attraverso un esempio:
Prima corsa
( 6 1 4 3) -> ( 1 6 4 2): qui 1 ° due elementi vengono scambiati se l'ordine non è corretto.
(1 6 4 2) -> (1 4 6 2): qui i due elementi successivi vengono scambiati se l'ordine non è corretto.
(1 4 6 2 ) -> (1 4 2 6 ): qui i due elementi successivi vengono scambiati se l'ordine non è corretto.
Seconda manche
( 1 4 2 6) -> ( 1 4 2 6): qui vengono confrontati 1 ° due elementi, ma non scambiati poiché l'ordine è corretto.
(1 4 2 6) -> (1 2 4 6): qui i due elementi successivi vengono scambiati, poiché l'ordine non era corretto.
(1 2 4 6 ) -> (1 2 4 6 ): qui vengono confrontati gli ultimi due elementi, ma non scambiati com'è l'ordine
Ora sappiamo che l'array sembra ordinato, tuttavia, è necessaria una corsa senza alcun swap, all'algoritmo per sapere se l'ordinamento è stato eseguito.
Terza corsa
( 1 2 4 6) -> ( 1 2 4 6): nessuna sostituzione in 1 ° due elementi.
(1 2 4 6) -> (1 2 4 6): nessuno scambio nei prossimi due elementi.
(1 2 4 6 ) -> (1 2 4 6 ): nessuno scambio negli ultimi due elementi.
Dato che non si sono verificati swap in nessuna fase, ora l'algoritmo comprende che l'ordinamento è perfetto.
L'ordinamento delle bolle ha il suo nome perché gli elementi si spostano verso l'alto nell'ordine corretto, che è come bolle che salgono in superficie.
Ordinamento delle bolle in linguaggio Python
Ora vediamo l'implementazione logica dell'ordinamento delle bolle tramite Python. Oggi Python è un linguaggio molto usato. Comprenderlo tramite Python ti darà sicuramente la sicurezza di poterlo scrivere anche in qualsiasi altra lingua.
Codice Python
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)
Per stampare l'array dopo l'ordinamento a bolle è necessario il codice seguente:
for i in range(len(arr)):
print("%d" %arr(i)),
Here arr will be your array.
Spiegazione del codice Python
Qui "m" è la lunghezza dell'array. Due per i loop mantengono la logica di terra effettiva, dove "u" rappresenta il primo elemento mentre "v" rappresenta il secondo con cui il primo elemento deve essere confrontato per lo scambio se l'ordinamento tra entrambi non è corretto.
"Arr (v)> arr (v + 1)" rappresenta il confronto di elementi consecutivi, se il primo elemento è maggiore del secondo elemento, l'operazione di scambio verrà eseguita dalla seguente espressione:
Questo è "arr (v), arr (v + 1) = arr (v + 1), arr (v)".
Questa operazione di scambio si chiama swap. La parte buona è che non è necessaria memoria temporanea per questo tipo di operazione di scambio.
"U" rappresenta il ciclo di ogni corsa, mentre "v" rappresenta le fasi di ogni fase. È possibile fare riferimento ad un esempio nella sezione precedente.
Dopo aver eseguito l'ordinamento a bolle, si può vedere l'array ordinato, con il codice menzionato di seguito:
for i in range(len(arr)):
print ("%d" %arr(i)),
Vediamo come si comporta in Python IDE, per una comprensione più profonda:
Produzione:
Ci sono alcuni fatti su Bubble Sort, che tutti dovrebbero sapere prima di implementarlo:
- Un ordinamento a bolle è spesso considerato un metodo di ordinamento non efficiente. Come deve scambiare gli articoli fino a quando non si conosce la sua posizione finale. Tutto ciò porta allo spreco di operazioni e quindi molto costoso. Questo algoritmo passa attraverso ogni singolo elemento, dove l'ordinamento è richiesto o meno. Una volta eseguita la corsa senza scambio, l'ordinamento delle bolle viene considerato completato.
- Questa è la più semplice tra tutte le strutture di dati, per ogni principiante questo dà una buona sicurezza. È facile da costruire e capire.
- Usa molto tempo e memoria.
- Questo è considerato un algoritmo stabile, poiché conserva l'ordine relativo degli elementi.
- Considerato buono per array / elenco di piccole dimensioni. Tuttavia, è una cattiva idea usarlo per quelli lunghi.
Conclusione
Passando attraverso il contenuto sopra di ordinamento a bolle, si potrebbe avere una comprensione cristallina di questo algoritmo di ordinamento, specializzato con Python. Una volta, ci si sente a proprio agio con la logica dell'ordinamento a bolle, quindi sarà più facile comprendere l'altro insieme di strutture di dati. Un approccio logico è l'unico modo per eccellere nel campo della struttura dei dati. Comprendere prima la logica dell'algoritmo della struttura dei dati in ogni fase e quindi indirizzarne il codice tramite Python o in qualsiasi altra lingua dovrebbe essere la strada.
Articoli consigliati
Questa è una guida per Bubble Sort in Python. Qui discutiamo l'implementazione logica dell'ordinamento a bolle attraverso il codice Python con la spiegazione. Puoi anche leggere il seguente articolo per saperne di più -
- Loop in Python
- Operazioni sui file Python
- Palindrome in Python
- Matrici 3D in Python
- Funzionalità di Python
- Scambiare in PHP
- Matrici 3D in C ++
- Palindrome in C ++
- Palindrome in JavaScript
- Come funzionano le matrici e le liste in Python?