logo

Program Python pre bublinové triedenie

Bubble Sort je najjednoduchší algoritmus triedenia, ktorý funguje tak, že sa priľahlé prvky, ak sú v nesprávnom poradí, opakovane zamieňajú.

pyspark

Program Python pre bublinové triedenie

Poskytnuté Python kód implementuje algoritmus Bubble Sort, ktorý triedi pole opakovaným porovnávaním susedných prvkov a ich výmenou, ak sú v nesprávnom poradí. Algoritmus prechádza cez pole viackrát, pričom každý prechod posunie najväčší nezoradený prvok do správnej polohy na konci. Kód obsahuje optimalizáciu: ak sa počas prechodu nevykonajú žiadne swapy, pole je už zoradené a proces triedenia sa zastaví. Príklad inicializuje pole, použije funkciu bubbleSort na jeho zoradenie a vytlačí zoradené pole. Po zoradení je výstup: [11, 12, 22, 25, 34, 64, 90] s uvedením vzostupného poradia.



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]: vymenené = True arr[j], arr[j + 1] = arr[j + 1], arr[j], ak nie je zamenené: # ak sme nepotrebovali urobiť jediný swap , môžeme # jednoducho opustiť hlavnú slučku. return # Kód ovládača na testovanie vyššie arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Sorted array is:') for i in range(len(arr)): print('% d' % arr[i], end=' ')>

Výkon
Sorted array is: 11 12 22 25 34 64 90>

Časová zložitosť : O(č2).
Pomocný priestor : O(1).

Pozrite si celý článok na Bublinové triedenie pre viac detailov!

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]>prvky[i + 1]: zamenené = pravda # zamenenie údajov, ak je prvok menší ako nasledujúci prvok v poli prvky[i], prvky[i + 1] = prvky[i + 1], prvky[i], ak nie sú zamenené : # opustenie funkcie, ak sme nevykonali jediný swap # čo znamená, že pole je už zoradené. return elements = [39, 12, 18, 85, 72, 10, 2, 18] print('Netriedený zoznam je,') print(prvky) bubblesort(elements) print('Sorted Array is, ') print(elements)>

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

Časová zložitosť : O(č2). V praxi však môže táto optimalizovaná verzia trvať menej času, pretože keď sa pole zoradí, funkcia sa vráti.
Pomocný priestor : O(1).