Programul Python pentru Bubble Sort

Bubble Sort este cel mai simplu algoritm de sortare care funcționează prin schimbarea în mod repetat a elementelor adiacente dacă acestea sunt în ordinea greșită.

Programul Python pentru Bubble Sort

Cele furnizate Piton codul implementează algoritmul Bubble Sort, care sortează o matrice comparând în mod repetat elementele adiacente și schimbându-le dacă sunt în ordinea greșită. Algoritmul iterează prin matrice de mai multe ori, fiecare trecere împingând cel mai mare element nesortat în poziția sa corectă la sfârșit. Codul include o optimizare: dacă nu se fac schimburi în timpul unei treceri, matricea este deja sortată, iar procesul de sortare se oprește. Exemplul inițializează o matrice, aplică funcția bubbleSort pentru a o sorta și tipărește matricea sortată. După sortare, rezultatul este: [11, 12, 22, 25, 34, 64, 90], indicând ordinea crescătoare.

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] dacă nu a fost schimbat: # dacă nu a fost nevoie să facem o singură schimbare , putem doar să ieșim din bucla principală. returnează # Codul driverului de testat deasupra arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Matricea sortată este:') pentru i în interval(len(arr)): print('% d' % arr[i], final=' ') 

Ieșire
Sorted array is: 11 12 22 25 34 64 90 

Complexitatea timpului : Pe 2 ).
Spațiu auxiliar : O(1).

Vă rugăm să consultați articolul complet pe Sortare cu bule pentru mai multe detalii!

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]>elemente[i + 1]: schimbat = Adevărat # schimb de date dacă elementul este mai mic decât următorul element din matrice elemente[i], elemente[i + 1] = elemente[i + 1], elemente[i] dacă nu sunt schimbate : # ieșirea din funcție dacă nu am făcut o singură schimbare # ceea ce înseamnă că matricea este deja sortată. elemente returnate = [39, 12, 18, 85, 72, 10, 2, 18] print('Lista nesortată este,') print(elemente) bubblesort(elemente) print('Matrice sortată este, ') print(elemente)>>>   
Ieșire Complexitatea timpului : Pe 2 ). Cu toate acestea, în practică, această versiune optimizată ar putea dura mai puțin, deoarece atunci când matricea este sortată, funcția ar reveni.
Spațiu auxiliar : O(1).