Bubblesortering är den enklaste sorteringsalgoritmen som fungerar genom att upprepade gånger byta de intilliggande elementen om de är i fel ordning.
slumpmässigt inte i java
Python-program för Bubble Sort
Den tillhandahållna Pytonorm kod implementerar Bubble Sort-algoritmen, som sorterar en array genom att upprepade gånger jämföra intilliggande element och byta ut dem om de är i fel ordning. Algoritmen itererar genom arrayen flera gånger, med varje pass trycker det största osorterade elementet till dess korrekta position i slutet. Koden inkluderar en optimering: om inga byten görs under ett pass är arrayen redan sorterad och sorteringsprocessen stoppas. Exemplet initierar en array, tillämpar bubbleSort-funktionen för att sortera den och skriver ut den sorterade arrayen. Efter sortering är resultatet: [11, 12, 22, 25, 34, 64, 90], vilket indikerar stigande ordning.
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]: bytte = Sant arr[j], arr[j + 1] = arr[j + 1], arr[j] om inte bytt: # om vi inte har behövt göra ett enda byte , vi # kan bara lämna huvudslingan. return # Drivrutinskod för att testa ovanför arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Sorterad array är:') för i inom intervallet(len(arr)): print('% d' % arr[i], end=' ')> Produktion
Sorted array is: 11 12 22 25 34 64 90>
Tidskomplexitet : O(n2).
Hjälputrymme :O(1).
typskript datumtyp
Se hela artikeln om Bubblesort för mer 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]>elements[i + 1]: swapped = Sant # byter data om elementet är mindre än nästa element i arrayelementen[i], element[i + 1] = element[i + 1], element[i] om inte bytt : # avslutar funktionen om vi inte gjorde ett enda byte # vilket betyder att arrayen redan är sorterad. return element = [39, 12, 18, 85, 72, 10, 2, 18] print('Osorterad lista är,') print(elements) bubblesort(elements) print('Sorted Array is, ') print(element)> Produktion
Unsorted list is, [39, 12, 18, 85, 72, 10, 2, 18] Sorted Array is, [2, 10, 12, 18, 18, 39, 72, 85]>
Tidskomplexitet : O(n2). Men i praktiken kan denna optimerade version ta kortare tid eftersom funktionen skulle återvända när arrayen sorteras.
Hjälputrymme :O(1).