Bubble Sort Начальный ~20 мин чтения

Bubble Sort

Урок 1 из 10 в курсе Алгоритмы. Старт.

Interactive

Bubble Sort Visualizer

Введите числа и управляйте пошаговым выполнением алгоритма.

sorting

История шагов

Bubble Sort

Bubble Sort — простой алгоритм сортировки, который сравнивает соседние элементы и меняет их местами.

Основная идея

На каждом проходе самый большой элемент "всплывает" в конец массива.

Пошаговый пример

Исходный массив:

[5, 3, 8, 4, 2]
  1. 5 и 3 → меняем → [3, 5, 8, 4, 2]
  2. 8 и 4 → меняем → [3, 5, 4, 8, 2]
  3. 8 и 2 → меняем → [3, 5, 4, 2, 8]
  4. Дальше повторяем проходы, пока не получим [2, 3, 4, 5, 8]

Псевдокод

for i from 0 to n - 1:
    swapped = false
    for j from 0 to n - i - 2:
        if arr[j] > arr[j + 1]:
            swap(arr[j], arr[j + 1])
            swapped = true
    if not swapped:
        break

Оптимизация: Используйте флаг swapped, чтобы завершать алгоритм раньше, если массив уже отсортирован.

Сложность

Время O(n²) в среднем и худшем случае, O(n) в лучшем (с оптимизацией).
Память O(1), сортировка in-place.

Когда используется

  • Обучение
  • Очень маленькие массивы
  • Прототипирование

Ключевые свойства

  • Стабильный
  • In-place
  • Простой, но медленный