Пузырьковая сортировка в Python
Пузырьковая сортировка — это простойалгоритм обменной сортировки, и её основной принцип работы таков:
- Повторно проходить по сортируемому списку, сравниваядва соседних элемента;
- Если порядок двух элементов не соответствует требованиям (например, при сортировке по возрастанию предыдущий элемент больше следующего), топоменять их местами;
- Каждый проход перемещаетнаибольший элемент в текущей неотсортированной части в конец путём «всплытия»(в случае сортировки по возрастанию), совсем как пузырьки, всплывающие вверх;
- Повторяйте вышеописанный процесс, пока весь список не будет полностью отсортирован (не происходит обменов или все элементы пройдены).

Ключевые особенности
- Тип сортировки: обменная сортировка
- Временная сложность: худший случай O(n²) (список полностью в обратном порядке), средний случай O(n²), лучший случай O(n) (оптимизированная версия, список уже отсортирован)
- Пространственная сложность: O(1) (сортировка на месте, дополнительная вспомогательная память не требуется)
- Устойчивость: устойчивая сортировка (относительные позиции равных элементов не изменяются)
Пример
def bubbleSort(arr):
n = len(arr)
# Пройти по всем элементам массива
for i in range(n):
# Последние i элементов уже находятся в правильной позиции (не нужно сравнивать снова)
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]
bubbleSort(arr)
print ("Отсортированный массив:")
for i in range(len(arr)):
print ("%d" %arr[i]),
Результат выполнения приведённого выше кода:
排序后的数组: 11 12 22 25 34 64 90Другие расширения
Python3 Примеры