Programma Python per Bubble Sort
Bubble Sort è l'algoritmo di ordinamento più semplice che funziona scambiando ripetutamente gli elementi adiacenti se sono nell'ordine sbagliato.
Programma Python per Bubble Sort
Il fornito Pitone il codice implementa l'algoritmo Bubble Sort, che ordina un array confrontando ripetutamente gli elementi adiacenti e scambiandoli se sono nell'ordine sbagliato. L'algoritmo esegue l'iterazione dell'array più volte, con ogni passaggio che spinge l'elemento non ordinato più grande nella posizione corretta alla fine. Il codice include un'ottimizzazione: se non vengono effettuati scambi durante un passaggio, l'array è già ordinato e il processo di ordinamento si interrompe. L'esempio inizializza un array, applica la funzione bubbleSort per ordinarlo e stampa l'array ordinato. Dopo l'ordinamento, l'output è: [11, 12, 22, 25, 34, 64, 90], che indica l'ordine crescente.
Python3 # Python program for implementation of Bubble Sort def bubbleSort(arr): n = len(arr) # optimize code, so if the array is already sorted, it doesn't need # to go through the entire process # Traverse through all array elements for i in range(n-1): # range(n) also work but outer loop will # repeat one time more than needed. # Last i elements are already in place swapped = False for j in range(0, n-i-1): # traverse the array from 0 to n-i-1 # Swap if the element found is greater # than the next element if arr[j]>arr[j + 1]: swapped = True arr[j], arr[j + 1] = arr[j + 1], arr[j] se non scambiato: # se non abbiamo avuto bisogno di fare un singolo scambio , possiamo # uscire dal ciclo principale. return # Codice driver da testare sopra arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('L'array ordinato è:') for i in range(len(arr)): print('% d' % arr[i], end=' ') Produzione
Sorted array is: 11 12 22 25 34 64 90
Complessità temporale : SU 2 ).
Spazio ausiliario : O(1).
Si prega di fare riferimento all'articolo completo su Ordinamento a bolle per ulteriori dettagli!
Python3 def bubblesort(elements): # Looping from size of array from last index[-1] to index [0] for n in range(len(elements)-1, 0, -1): swapped = False for i in range(n): if elements[i]>elementi[i + 1]: swapped = True # scambia dati se l'elemento è minore dell'elemento successivo nell'array elementi[i], elementi[i + 1] = elementi[i + 1], elementi[i] se non scambiato : # esce dalla funzione se non è stato effettuato uno scambio # significa che l'array è già ordinato. return elementi = [39, 12, 18, 85, 72, 10, 2, 18] print('L'elenco non ordinato è,') print(elementi) bubblesort(elementi) print('L'array ordinato è, ') print(elementi) Produzione
Unsorted list is, [39, 12, 18, 85, 72, 10, 2, 18] Sorted Array is, [2, 10, 12, 18, 18, 39, 72, 85]
Complessità temporale : SU 2 ). Tuttavia, in pratica, questa versione ottimizzata potrebbe richiedere meno tempo poiché quando l'array viene ordinato, la funzione ritornerebbe.
Spazio ausiliario : O(1).