logo

Python programa, skirta burbulų rūšiavimui

Bubble Sort yra paprasčiausias rūšiavimo algoritmas, kuris veikia pakartotinai keičiant gretimus elementus, jei jie yra neteisinga tvarka.

int į eilutę Java

Python programa, skirta burbulų rūšiavimui

Pateiktas Python kodas įgyvendina Bubble Sort algoritmą, kuris rūšiuoja masyvą pakartotinai lygindamas gretimus elementus ir sukeisdamas juos, jei jie yra neteisinga tvarka. Algoritmas kartojasi per masyvą kelis kartus, kiekviename žingsnyje didžiausias nesurūšiuotas elementas stumiamas į tinkamą vietą pabaigoje. Kodas apima optimizavimą: jei perėjimo metu nekeičiami mainai, masyvas jau surūšiuotas ir rūšiavimo procesas sustoja. Pavyzdyje inicijuojamas masyvas, pritaikoma funkcija „bubbleSort“, kad būtų rūšiuojama, ir išspausdinamas surūšiuotas masyvas. Surūšiavus išvesta: [11, 12, 22, 25, 34, 64, 90], nurodant didėjimo tvarka.



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]: sukeista = True arr[j], arr[j + 1] = arr[j + 1], arr[j], jei neapkeista: # jei mums nereikėjo atlikti nė vieno apsikeitimo , mes # galime tiesiog išeiti iš pagrindinės kilpos. return # Tvarkyklės kodas, kurį reikia patikrinti aukščiau arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Rūšiuotas masyvas yra:') for i diapazone(len(arr)): print('% d' % arr[i], end=' ')>

Išvestis
Sorted array is: 11 12 22 25 34 64 90>

Laiko sudėtingumas : O (n2).
Pagalbinė erdvė : O(1).

metodai java

Peržiūrėkite visą straipsnį apie Burbulų rūšiavimas daugiau detalių!

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]>elementai [i + 1]: sukeisti = teisingi # keitimo duomenys, jei elementas yra mažesnis už kitą masyvo elementą elementai [i], elementai [i + 1] = elementai[i + 1], elementai [i], jei neapkeisti : # išeiname iš funkcijos, jei nepadarėme nė vieno apsikeitimo # reiškia, kad masyvas jau surūšiuotas. return elements = [39, 12, 18, 85, 72, 10, 2, 18] print('Nerūšiuotas sąrašas yra,') print(elements) bubblesort(elements) print('Rūšiuotas masyvas yra, ') spausdinti(elementai)>>  
Išvestis Laiko sudėtingumas : O (n2). Tačiau praktiškai ši optimizuota versija gali užtrukti mažiau laiko, nes surūšiavus masyvą funkcija grįš.
Pagalbinė erdvė : O(1).