Bubble Sort is het eenvoudigste sorteeralgoritme dat werkt door de aangrenzende elementen herhaaldelijk om te wisselen als ze in de verkeerde volgorde staan.
vervang alle Java
Python-programma voor bellensortering
De verstrekte Python code implementeert het Bubble Sort-algoritme, dat een array sorteert door herhaaldelijk aangrenzende elementen te vergelijken en ze om te wisselen als ze in de verkeerde volgorde staan. Het algoritme itereert meerdere keren door de array, waarbij elke doorgang het grootste ongesorteerde element aan het einde naar de juiste positie duwt. De code bevat een optimalisatie: als er tijdens een doorgang geen swaps worden uitgevoerd, is de array al gesorteerd en stopt het sorteerproces. In het voorbeeld wordt een array geïnitialiseerd, wordt de functie bubbleSort toegepast om deze te sorteren, en wordt de gesorteerde array afgedrukt. Na het sorteren is de uitvoer: [11, 12, 22, 25, 34, 64, 90], wat de oplopende volgorde aangeeft.
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] indien niet geruild: # als we geen enkele swap hoeven uit te voeren , kunnen we # gewoon de hoofdlus verlaten. return # Stuurprogrammacode om te testen hierboven arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Gesorteerde array is:') voor i binnen bereik(len(arr)): print('% d' % arr[i], end=' ')> Uitvoer
Sorted array is: 11 12 22 25 34 64 90>
Tijdcomplexiteit : Op2).
Hulpruimte : O(1).
Mission Impossible alle films
Raadpleeg het volledige artikel op Bellen sorteren voor meer details!
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 = True # data verwisselen als het element kleiner is dan het volgende element in de array elements[i], elements[i + 1] = elements[i + 1], elements[i] indien niet verwisseld : # verlaat de functie als we geen enkele swap hebben uitgevoerd # wat betekent dat de array al is gesorteerd. return elements = [39, 12, 18, 85, 72, 10, 2, 18] print('Ongesorteerde lijst is,') print(elementen) bubblesort(elementen) print('Gesorteerde array is,') print(elementen)> Uitvoer
Unsorted list is, [39, 12, 18, 85, 72, 10, 2, 18] Sorted Array is, [2, 10, 12, 18, 18, 39, 72, 85]>
Tijdcomplexiteit : Op2). In de praktijk kan deze geoptimaliseerde versie echter minder tijd in beslag nemen, omdat de functie terugkeert wanneer de array wordt gesorteerd.
Hulpruimte : O(1).