Метод пузырька в Python: примеры кода
Метод пузырька, или сортировка пузырьком, - это простой алгоритм сортировки. Он работает путем многократного прохождения через список, сравнивая каждую пару соседних элементов и меняя их местами, если они в неправильном порядке.
Пример 1: Базовая сортировка пузырьком на Python
Вот базовый пример сортировки пузырьком на Python:
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
Мы можем оптимизировать сортировку пузырьком, останавливая алгоритм, если за проход по списку не было сделано ни одного обмена. Это означает, что список уже отсортирован.
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
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. Однако его эффективность оставляет желать лучшего, и он редко используется на практике для больших списков. Несмотря на это, он является хорошим примером для понимания базовых принципов сортировки и алгоритмов.