Bubble Sort ir vienkāršākais kārtošanas algoritms, kas darbojas, atkārtoti apmainot blakus esošos elementus, ja tie atrodas nepareizā secībā.
Python programma burbuļu kārtošanai
Paredzētais Python kods ievieš Bubble Sort algoritmu, kas kārto masīvu, atkārtoti salīdzinot blakus esošos elementus un apmainot tos, ja tie atrodas nepareizā secībā. Algoritms atkārtojas cauri masīvam vairākas reizes, ar katru piegājienu nospiežot lielāko nešķiroto elementu tā pareizajā pozīcijā. Kods ietver optimizāciju: ja pārejas laikā netiek veikti mijmaiņas darījumi, masīvs jau ir sakārtots un šķirošanas process apstājas. Piemērā tiek inicializēts masīvs, tiek lietota funkcija bubbleSort, lai to kārtotu, un izdrukāts sakārtotais masīvs. Pēc šķirošanas iznākums ir: [11, 12, 22, 25, 34, 64, 90], norādot augošā secībā.
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]: apmainīts = patiess arr[j], arr[j + 1] = arr[j + 1], arr[j], ja nav apmainīts: # ja mums nav nepieciešams veikt vienu mijmaiņu , mēs # varam vienkārši iziet no galvenās cilpas. return # Pārbaudāmais draivera kods iepriekš 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=' ')>
Izvade
Sorted array is: 11 12 22 25 34 64 90>
Laika sarežģītība : O(n2).
Palīgtelpa : O(1).
Lūdzu, skatiet pilnu rakstu par Burbuļu kārtošana sīkākai informācijai!
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]: swapped = patiesi # apmaiņas dati, ja elements ir mazāks par nākamo elementu masīvā elementi[i], elementi[i + 1] = elementi[i + 1], elementi[i], ja nav apmainīti : # iziet no funkcijas, ja mēs neveicām nevienu mijmaiņas darījumu # nozīmē, ka masīvs jau ir sakārtots. atgriešanas elementi = [39, 12, 18, 85, 72, 10, 2, 18] print('Nešķirotais saraksts ir,') print(elements) bubblesort(elements) print('Sorted Array is, ') drukāt(elementi)>
Izvade
Unsorted list is, [39, 12, 18, 85, 72, 10, 2, 18] Sorted Array is, [2, 10, 12, 18, 18, 39, 72, 85]>
Laika sarežģītība : O(n2). Tomēr praksē šī optimizētā versija var aizņemt mazāk laika, jo, kārtojot masīvu, funkcija atgrieztos.
Palīgtelpa : O(1).