logo

Програма Python для бульбашкового сортування

Бульбашкове сортування — це найпростіший алгоритм сортування, який постійно змінює сусідні елементи, якщо вони розташовані в неправильному порядку.

Програма Python для бульбашкового сортування

Надається Python код реалізує алгоритм бульбашкового сортування, який сортує масив, багаторазово порівнюючи сусідні елементи та міняючи їх місцями, якщо вони розташовані в неправильному порядку. Алгоритм повторює масив кілька разів, при цьому кожен прохід переміщує найбільший несортований елемент у правильне положення в кінці. Код містить оптимізацію: якщо під час проходу не зроблено жодних замін, масив уже відсортовано, і процес сортування зупиняється. Цей приклад ініціалізує масив, застосовує функцію bubbleSort для його сортування та друкує відсортований масив. Після сортування результатом є: [11, 12, 22, 25, 34, 64, 90] із зазначенням порядку зростання.

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]: поміняно місцями = True arr[j], arr[j + 1] = arr[j + 1], arr[j] якщо не поміняно місцями: # якщо нам не потрібно було робити жодного свопу , ми # можемо просто вийти з основного циклу. return # Код драйвера для перевірки вище arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('Відсортований масив:') для i в діапазоні(len(arr)): print('% d' % arr[i], end=' ')>

Вихід
Sorted array is: 11 12 22 25 34 64 90>

Часова складність : O(n2).
Допоміжний простір : O(1).



Перегляньте повну статтю Бульбашкове сортування для більш детальної інформації!

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]>elements[i + 1]: swapped = True # заміна даних, якщо елемент менший за наступний елемент у масиві elements[i], elements[i + 1] = elements[i + 1], elements[i] якщо не поміняно : # вихід із функції, якщо ми не зробили жодного свопу # означає, що масив уже відсортовано. return elements = [39, 12, 18, 85, 72, 10, 2, 18] print('Несортований список є,') print(elements) bubblesort(elements) print('Відсортований масив є, ') print(elements)>

Вихід
Unsorted list is, [39, 12, 18, 85, 72, 10, 2, 18] Sorted Array is, [2, 10, 12, 18, 18, 39, 72, 85]>

Часова складність : O(n2). Однак на практиці ця оптимізована версія може зайняти менше часу, оскільки коли масив сортується, функція повертатиметься.
Допоміжний простір : O(1).