Bubble ordin Python

Bubble ordin Python
L'ordinamento è il processo di organizzazione dei valori in ordine presente sotto forma di elenchi. Diversi tipi di smistamento discriminano a causa delle loro tecniche di utilizzo e approcci come ordinamento rapido, ordinamento di selezione, unione, ordinamento a bolle, ecc. Questo tutorial è correlato al tipo di bolle.

Bolle Ord

Questa è la disposizione degli elementi di un array che si occupa dell'utilizzo dell'algoritmo di smistamento più semplice applicato scambiando ripetutamente gli elementi adiacenti se l'ordine è sbagliato.

Ordine della bolla funzionante

Per ordinare i valori in ordine crescente, quindi la prima iterazione include il processo di confronto e scambio. Il primo valore dell'indice e il secondo vengono confrontati. Se la condizione è soddisfatta, si verifica lo scambio e viene ripetuto fino alla fine.

Algoritmo / pseudo codice per bubble

funzione (array)
per io a destra
scambia il valore di sinistra e il valore destro
funzione di fine

Esempio 1

Il meccanismo di ordinamento a bolle viene applicato al linguaggio di programmazione Python utilizzando la funzione denominata. La sintassi per la funzione è che una parola chiave 'def' viene utilizzata insieme al nome della funzione. Nel parametro della funzione, abbiamo superato un array che deve essere ordinato dalla funzione. Quindi ora vedremo la funzionalità completa o diremo che il nucleo dell'intero processo di smistamento è definito nel corpo della funzione. In primo luogo dichiareremo la lunghezza dell'array a una variabile tramite un operatore di assegnazione utilizzando la funzione integrata Len ().

# n = len (arr)

Per accedere a qualsiasi elemento in un array, utilizziamo sempre un loop in qualsiasi linguaggio di programmazione. Proprio così, Python utilizza anche il ciclo "per" nel processo di smistamento per renderlo fattibile per l'utente. Quindi l'array verrà attraversato usando un loop.

# Per i in gamma (n - 1):

Qui "I" è la variabile che rappresenta il numero dell'indice nell'array con l'array di una dimensione fissa meno uno. Poiché 'n' rappresenta la dimensione dell'array, quindi (n-1) rappresenta la attraversamento del ciclo alla posizione della dimensione meno una in modo da poter ripetere il ciclo una volta dopo una singola iterazione.

Come descritto sopra, i due indici adiacenti più vicini vengono confrontati per l'ordinamento della bolla. Usando il loop sopra, accederemo a un indice. Dì il primo, per accedere al prossimo indice; Abbiamo inoltre bisogno di un ciclo. Questo è il ciclo interno e il sopra menzionato viene dichiarato come un ciclo esterno. Questo fenomeno ricorda l'array bidimensionale (2D). Quindi dichiariamo il ciclo interiore.

# per j in gamma (0, n-i-1):

La variabile 'J' è come la 'i' del ciclo esterno, ma questo rappresenterà il valore successivo del valore corrente dell'indice 'i', poiché abbiamo applicato la logica di 'n-i-1', quindi il ciclo lo farà Iterazione fino alla posizione di sottrarre il valore di "I" dalla dimensione dell'array insieme al valore "-1", questo porterà ai due indici adiacenti nell'array.

Abbiamo accesso a due valori nell'array ed è tempo di confrontarli come sappiamo che il confronto viene effettuato attraverso le staffe angolari. Dobbiamo usare la staffa '>' per l'ordinamento ascendente.

Se arr [j]> arr [j + 1]:
arr [j], arr [j +1] = arr [j + 1], arr [j]

Se il valore sul lato sinistro a cui si accede prima è maggiore del valore a destra, accessibile in seguito, entrambi i valori vengono scambiati direttamente senza utilizzare alcun coinvolgimento del terzo posto. Nell'altro caso, spostati verso la posizione successiva. Questa era la funzione logica principale del tipo di bolle.

Salta fuori dai loop. Successivamente, dichiariamo l'array e lo passiamo alla funzione tramite una chiamata di funzione.

Bubblesort (arr).

Dopodiché, l'array ordinato verrà stampato. Nella console risultante, verrà visualizzato il valore risultante.

Puoi vedere che l'array di input contiene i valori casuali, mentre, nell'array risultante, tutti gli elementi sono ordinati in ordine crescente.

Esempio 2

L'esempio sopra si occupa del continuo confronto anche se l'intero array è già ordinato. Questo porta all'estensione del tempo dell'esecuzione in tutto l'array. Quindi, per rendere il tempo di esecuzione limitato, useremo una terza variabile. Qui utilizziamo una variabile booleana per impostare il valore della variabile come true se si verifica lo scambio. Altrimenti, è considerato falso.

Dopo ogni iterazione, se non si verifica uno scambio a causa dello scambio, il valore sarà falso. Si riferisce a quando tutti gli elementi in un array sono già ordinati e non vi è ulteriori requisiti per ordinarli. Questo fenomeno viene facilmente utilizzato e può ridurre i tempi di esecuzione e beneficiare dell'ottimizzazione dell'ordinamento delle bolle.

All'interno della funzione di ordinamento della bolla, la lunghezza è stata dichiarata una variabile. Un'ulteriore variabile scambiata è dichiarata falsa per impostazione predefinita. Ma il suo valore cambia ogni volta che si verifica il processo di scambio.

Scambiati = falso

All'interno sia esterno che interno, si verifica il confronto tra i valori degli indici specificati; Se i valori devono essere scambiati, la variabile scambiata viene trasformata in "true" e i valori vengono scambiati correttamente.

Ma se non vengono scambiati due valori, quando i valori sono già disposti, non si verifica alcun scambio, quindi la variabile scambiata rimane falsa. E poi si verifica l'interruzione. Questo assegno è raggiunto attraverso un If Statement.

Se scambiati == false

Rottura

Questa pausa sarà responsabile dell'esecuzione del ciclo. Come in questo esempio, l'interruzione si verificherà all'indice di 1,2 e 3.

Dopo aver salvato il file, i valori di esecuzione possono essere visualizzati tramite la console. Puoi vedere i valori risultanti disposti in ordine crescente.

Esempio 3

Questo esempio segue lo stesso concetto spiegato nel secondo esempio usando lo stesso scambiato booleano con l'uso di un'altra variabile al momento dello scambio dei valori. Questo è un valore di temperatura. Questo è un modello che memorizza temporaneamente i valori.

Lo stesso esempio sopra è usato qui. Considera solo la procedura di scambio qui. Il primo valore dell'indice viene salvato nella variabile "temp" all'interno dei loop. E quello spazio è riempito con il valore accanto ad esso nell'array a cui viene confrontato il valore precedente. E quel prossimo valore è ora sostituito con il valore presente nella temperatura. Questo si chiama assegnazione indiretta dei valori e utilizza più passaggi rispetto all'assegnazione diretta dei valori.

La variabile scambiata sarà dichiarata vera nel caso di scambio. Eseguire il codice per vedere i risultati.

Conclusione

L'articolo "Bubble Sort" contiene una breve introduzione alla metodologia di ordinamento attraverso l'algoritmo. Viene discusso un processo dettagliato di bolle con un approccio passo-passo. Lo strumento Spyder è raccomandato per l'implementazione di programmi relativi a Python. Ogni esempio elementare raffigura l'uso dell'ordinamento della bolla in linguaggio Python.