Метод пузырька в Python: примеры кода
Python

Метод пузырька в Python: примеры кода

Razilator

Метод пузырька, или сортировка пузырьком, - это простой алгоритм сортировки. Он работает путем многократного прохождения через список, сравнивая каждую пару соседних элементов и меняя их местами, если они в неправильном порядке.

Пример 1: Базовая сортировка пузырьком на Python

Вот базовый пример сортировки пузырьком на Python:

main.py
def bubble_sort(lst):
    n = len(lst)
    for i in range(n):
        for j in range(0, n - i - 1):
            if lst[j] > lst[j + 1]:
                lst[j], lst[j + 1] = lst[j + 1], lst[j]
    return lst

numbers = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(numbers))  # Выведет: [11, 12, 22, 25, 34, 64, 90]

В этом примере мы создаем функцию bubble_sort, которая принимает список в качестве аргумента и сортирует его в порядке возрастания.

Пример 2: Оптимизированная сортировка пузырьком на Python

Мы можем оптимизировать сортировку пузырьком, останавливая алгоритм, если за проход по списку не было сделано ни одного обмена. Это означает, что список уже отсортирован.

main.py
def bubble_sort_optimized(lst):
    n = len(lst)
    for i in range(n):
        swapped = False
        for j in range(0, n - i - 1):
            if lst[j] > lst[j + 1]:
                lst[j], lst[j + 1] = lst[j + 1], lst[j]
                swapped = True
        if not swapped:
            break
    return lst

numbers = [5, 1, 4, 2, 8, 0, 2]
print(bubble_sort_optimized(numbers))  # Выведет: [0, 1, 2, 2, 4, 5, 8]

Пример 3: Сортировка в порядке убывания на Python

main.py
def bubble_sort_reverse(arr):
    n = len(arr)
    for i in range(n - 1):
        for j in range(0, n - i - 1):
            if arr[j] < arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]


# Пример использования:
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort_reverse(arr)
print(arr)  # Выведет [90, 64, 34, 25, 22, 12, 11]

Заключение

Сортировка пузырьком - это простой алгоритм сортировки, который может быть легко реализован на Python. Однако его эффективность оставляет желать лучшего, и он редко используется на практике для больших списков. Несмотря на это, он является хорошим примером для понимания базовых принципов сортировки и алгоритмов.

;