logo

Program w Pythonie do sortowania bąbelkowego

Sortowanie bąbelkowe to najprostszy algorytm sortowania, który polega na wielokrotnym zamienianiu sąsiadujących elementów, jeśli są ułożone w niewłaściwej kolejności.

arp – polecenie

Program w Pythonie do sortowania bąbelkowego

Zapewnione Pyton kod implementuje algorytm sortowania bąbelkowego, który sortuje tablicę, wielokrotnie porównując sąsiednie elementy i zamieniając je, jeśli są w niewłaściwej kolejności. Algorytm wielokrotnie iteruje po tablicy, przy każdym przejściu wypychając największy nieposortowany element na jego właściwą pozycję na końcu. Kod zawiera optymalizację: jeśli podczas przebiegu nie zostaną wykonane żadne zamiany, tablica jest już posortowana i proces sortowania zostaje zatrzymany. Przykład inicjuje tablicę, stosuje funkcję bubbleSort do jej sortowania i drukuje posortowaną tablicę. Po sortowaniu wynikiem jest: [11, 12, 22, 25, 34, 64, 90], wskazując porządek rosnący.

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]: zamienione = True arr[j], arr[j + 1] = arr[j + 1], arr[j] jeśli nie zostały zamienione: # jeśli nie musieliśmy dokonywać ani jednej zamiany , # możemy po prostu wyjść z głównej pętli. return # Kod sterownika do przetestowania powyżej arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Posortowana tablica to:') dla i w zakresie(len(arr)): print('% d' % arr[i], end=' ')>

Wyjście
Sorted array is: 11 12 22 25 34 64 90>

Złożoność czasu : NA2).
Przestrzeń pomocnicza :O(1).



Proszę zapoznać się z pełnym artykułem na temat Sortowanie bąbelkowe po więcej szczegółów!

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]>elementy[i + 1]: zamienione = True # zamiana danych, jeśli element jest mniejszy niż następny element w tablicy elementy[i], elementy[i + 1] = elementy[i + 1], elementy[i] jeśli nie zostaną zamienione : # wyjście z funkcji, jeśli nie dokonaliśmy ani jednej zamiany, # co oznacza, że ​​tablica jest już posortowana. return elementy = [39, 12, 18, 85, 72, 10, 2, 18] print('Nieposortowana lista to,') print(elementy) bubblesort(elementy) print('Posortowana tablica to, ') print(elementy)>

Wyjście
Unsorted list is, [39, 12, 18, 85, 72, 10, 2, 18] Sorted Array is, [2, 10, 12, 18, 18, 39, 72, 85]>

Złożoność czasu : NA2). Jednak w praktyce ta zoptymalizowana wersja może zająć mniej czasu, ponieważ po posortowaniu tablicy funkcja zwróci.
Przestrzeń pomocnicza :O(1).