Developer Toolbox

Пузырьковая сортировка

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

  • Ω(n)
  • Θ(n²)
  • O(n²)
  • O(1)
  • да
  • да
  • сравнение
  • перемещение
  • на окончательном месте
0 / 453 шагов

Пар не по порядку: 154 (в начале: 154) не по порядку упорядочены

Сравнения Обмены

Нажмите «Воспроизвести»: линии покажут, как растут затраты

Нажмите «Воспроизвести» или проходите алгоритм по шагам.

Пробел: воспроизведение или пауза. Стрелки влево и вправо: шаг. Home и End: в начало или в конец.

Попробуйте: Выберите почти отсортированный список. После прохода без единого обмена алгоритм останавливается раньше.

Как это работает

Сравнивает два соседних значения и меняет их местами, если левое больше. Так за каждый проход самое большое значение доходит до правого края, как всплывающий пузырёк. Если за проход не было ни одного обмена, список уже отсортирован.

Когда стоит применять

В реальных программах почти никогда, потому что на длинных списках она медленная. Зато хорошо подходит для обучения: показывает саму идею сортировки сравнениями и обменами. Быстрая она только на уже отсортированном списке.