Пузырьковая сортировка сравнивает соседние элементы и меняет их местами, если порядок неверен. После каждого прохода максимальный элемент оставшейся части оказывается справа.
Напишите метод сортировки списка с использованием пузырькового метода (bubble sort).
Пузырьковая сортировка сравнивает соседние элементы и меняет их местами, если порядок неверен. После каждого прохода максимальный элемент оставшейся части оказывается справа.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Пузырьковая сортировка сравнивает соседние элементы и меняет их местами, если порядок неверен. После каждого прохода максимальный элемент оставшейся части оказывается справа.
def bubble_sort(values):
for end in range(len(values) - 1, 0, -1):
swapped = False
for index in range(end):
if values[index] > values[index + 1]:
values[index], values[index + 1] = values[index + 1], values[index]
swapped = True
if not swapped:
break
return values
Функция изменяет переданный список. В худшем и среднем случае время O(n²), при уже отсортированном списке с ранним выходом — O(n). Дополнительная память O(1). Равные элементы не переставляются, поэтому сортировка стабильна; для обычного прикладного кода предпочтительнее встроенная сортировка.