logo

Program Python za Bubble Sort

Bubble Sort je najpreprostejši algoritem za razvrščanje, ki deluje tako, da večkrat zamenja sosednje elemente, če so v napačnem vrstnem redu.

Program Python za Bubble Sort

Zagotovljeno Python koda implementira algoritem Bubble Sort, ki razvrsti matriko tako, da večkrat primerja sosednje elemente in jih zamenja, če so v napačnem vrstnem redu. Algoritem večkrat ponovi matriko, pri čemer vsak prehod potisne največji nerazvrščeni element na njegovo pravilno mesto na koncu. Koda vključuje optimizacijo: če med prehodom ni zamenjav, je matrika že razvrščena in postopek razvrščanja se ustavi. Primer inicializira matriko, uporabi funkcijo bubbleSort za njeno razvrščanje in natisne razvrščeno matriko. Po razvrščanju je rezultat: [11, 12, 22, 25, 34, 64, 90], kar kaže na naraščajoči vrstni red.



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]: zamenjano = True arr[j], arr[j + 1] = arr[j + 1], arr[j] če ni zamenjano: # če nam ni bilo treba narediti niti ene zamenjave , lahko # preprosto zapustimo glavno zanko. return # Koda gonilnika za preizkus zgoraj arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Razvrščena matrika je:') za i in range(len(arr)): print('% d' % arr[i], end=' ')>

Izhod
Sorted array is: 11 12 22 25 34 64 90>

Časovna zapletenost : O(n2).
Pomožni prostor : O(1).

Oglejte si celoten članek Bubble Sort za več podrobnosti!

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]>elementi [i + 1]: zamenjani = True # zamenjava podatkov, če je element manjši od naslednjega elementa v nizu elementi [i], elementi [i + 1] = elementi [i + 1], elementi [i], če niso zamenjani : # izhod iz funkcije, če nismo naredili niti ene zamenjave # kar pomeni, da je niz že razvrščen. return elements = [39, 12, 18, 85, 72, 10, 2, 18] print('Nerazvrščen seznam je,') print(elementi) bubblesort(elementi) print('Razvrščena matrika je, ') natisni (elementi)>

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

Časovna zapletenost : O(n2). Toda v praksi lahko ta optimizirana različica traja manj časa, saj se funkcija vrne, ko je matrika razvrščena.
Pomožni prostor : O(1).