Bubble Sort er den enkleste sorteringsalgoritmen som fungerer ved å bytte de tilstøtende elementene gjentatte ganger hvis de er i feil rekkefølge.
Python-program for boblesortering
Den gitte Python kode implementerer Bubble Sort-algoritmen, som sorterer en matrise ved gjentatte ganger å sammenligne tilstøtende elementer og bytte dem hvis de er i feil rekkefølge. Algoritmen itererer gjennom matrisen flere ganger, med hvert pass skyver det største usorterte elementet til riktig posisjon på slutten. Koden inkluderer en optimalisering: hvis det ikke foretas bytter under et pass, er matrisen allerede sortert, og sorteringsprosessen stopper. Eksemplet initialiserer en matrise, bruker bubbleSort-funksjonen for å sortere den, og skriver ut den sorterte matrisen. Etter sortering er utgangen: [11, 12, 22, 25, 34, 64, 90], som indikerer stigende rekkefølge.
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]: byttet = Sant arr[j], arr[j + 1] = arr[j + 1], arr[j] hvis ikke byttet: # hvis vi ikke har trengt å foreta et enkelt bytte , vi # kan bare gå ut av hovedsløyfen. return # Driverkode for å teste over arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Sortert matrise er:') for i i området(len(arr)): print('% d' % arr[i], end=' ')> Produksjon
Sorted array is: 11 12 22 25 34 64 90>
Tidskompleksitet : O(n2).
Auxiliary Space :O(1).
Vennligst se fullstendig artikkel om Boblesortering for flere detaljer!
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]>elementer[i + 1]: byttet = Sant # bytter data hvis elementet er mindre enn neste element i array-elementene[i], elementer[i + 1] = elementer[i + 1], elementer[i] hvis ikke byttet : # avslutter funksjonen hvis vi ikke gjorde en eneste swap # betyr at matrisen allerede er sortert. returelementer = [39, 12, 18, 85, 72, 10, 2, 18] print('Usortert liste er,') print(elements) bubblesort(elements) print('Sortert Array er, ') print(elementer)> Produksjon
Unsorted list is, [39, 12, 18, 85, 72, 10, 2, 18] Sorted Array is, [2, 10, 12, 18, 18, 39, 72, 85]>
Tidskompleksitet : O(n2). Men i praksis kan denne optimaliserte versjonen ta kortere tid, da funksjonen kommer tilbake når arrayen blir sortert.
Auxiliary Space :O(1).