logo

Python-ohjelma Bubble Sortille

Bubble Sort on yksinkertaisin lajittelualgoritmi, joka toimii vaihtamalla toistuvasti vierekkäisiä elementtejä, jos ne ovat väärässä järjestyksessä.

Python-ohjelma Bubble Sortille

Tarjottu Python koodi toteuttaa Bubble Sort -algoritmin, joka lajittelee taulukon vertaamalla toistuvasti vierekkäisiä elementtejä ja vaihtamalla niitä, jos ne ovat väärässä järjestyksessä. Algoritmi iteroi taulukon läpi useita kertoja, ja jokainen kierros työntää suurimman lajittelemattoman elementin oikeaan paikkaansa lopussa. Koodi sisältää optimoinnin: jos läpimenon aikana ei tehdä vaihtoja, taulukko on jo lajiteltu ja lajittelu pysähtyy. Esimerkki alustaa taulukon, lajittelee sen käyttämällä bubbleSort-funktiota ja tulostaa lajitellun taulukon. Lajittelun jälkeen tulos on: [11, 12, 22, 25, 34, 64, 90], joka osoittaa nousevaa järjestystä.

Python 3
# 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]: vaihdettu = tosi arr[j], arr[j + 1] = arr[j + 1], arr[j] jos ei ole vaihdettu: # jos meidän ei ole tarvinnut tehdä yhtään vaihtoa , # voimme vain poistua pääsilmukasta. return # Testattava ohjainkoodi yllä arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Lajiteltu array on:') for i in range(len(arr)): print('% d' % arr[i], end=' ')>

Lähtö
Sorted array is: 11 12 22 25 34 64 90>

Aika monimutkaisuus : Päällä2).
Aputila : O(1).



Katso täydellinen artikkeli aiheesta Kuplalajittelu Lisätietoja!

Python 3
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]>elementit[i + 1]: swapped = Tosi #vaihtodata, jos elementti on pienempi kuin taulukon seuraava elementti elementit[i], elementit[i + 1] = elementit[i + 1], elementit[i], jos niitä ei vaihdeta : # funktiosta poistuminen, jos emme tehneet yhtäkään vaihtoa # tarkoittaa, että taulukko on jo lajiteltu. return elements = [39, 12, 18, 85, 72, 10, 2, 18] print('Lajittelematon lista on,') print(elements) bubblesort(elements) print('Lajiteltu array on, ') tulosta(elementit)>>  
Lähtö Aika monimutkaisuus : Päällä2). Käytännössä tämä optimoitu versio saattaa kuitenkin viedä vähemmän aikaa, koska kun taulukko lajitellaan, funktio palaa.
Aputila : O(1).