Деление на ноль

Сортировка пузырьком: интерактивная анимация (Bubble Sort)

Соседние элементы меняются местами, пока бóльшие не "всплывут" в конец

Визуализация

Данные: Случайные
Данные:
Легенда цветов
не проверен сравниваем меняем местами на своем месте
Нажмите "Пуск" или листайте по шагам.
Сравнения: 0 Обмены: 0 Проход: 0 Шаг: 0 / 0 Сложность по времени: -

Как работает сортировка пузырьком

Идея алгоритма. Проходим по массиву слева направо и сравниваем каждую пару соседних элементов. Если левый больше правого - меняем их местами. За один такой проход наибольший элемент гарантированно доезжает до конца массива, как пузырек воздуха всплывает на поверхность воды. Отсюда и название.

Сложность алгоритма

Сложность - это оценка того, как быстро растет потребление ресурса при росте длины массива n. Ресурса у алгоритма два, поэтому и оценки две: по времени и по памяти. Обе записывают через O-нотацию - у нас есть отдельная анимация о том, как читать такие записи.

По времени

Показывает, как растет число операций (здесь это сравнения и обмены) при росте n. Лейбл "Сложность" под визуализацией - время, которое получилось фактически на ваших данных.

Случай Время Комментарий
Лучший (массив отсортирован) O(n) Один проход без обменов - и умная остановка
Средний O(n²) Число сравнений растет квадратично
Худший (обратный порядок) O(n²) Обмен на каждом сравнении

По памяти

Показывает, сколько дополнительной памяти нужно алгоритму. Сам входной массив в эту оценку не входит: дополнительной считается память сверх него.

Характеристика Оценка Комментарий
Дополнительная память O(1) Сортировка на месте: хватает одной временной переменной для обмена, сколько бы элементов ни было

Устойчивость алгоритма

Устойчивой называется сортировка, которая не меняет взаимный порядок равных элементов. Пример: сортируем учеников по оценке, а внутри одной оценки они уже стояли по алфавиту. Устойчивая сортировка сохранит алфавитный порядок внутри каждой оценки, неустойчивая - может перемешать.

Характеристика Оценка Комментарий
Устойчивость Да Обмен только при строгом "больше": равные элементы не перепрыгивают друг через друга. Проверьте на наборе "Одинаковые" - обменов не будет вовсе

Примеры реализации сортировки пузырьком (Bubble Sort)

Хотите разобрать тему глубже? В нашем бесплатном курсе есть урок про пузырьковые сортировки - с подробной теорией, задачами и проверочными вопросами.