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

Блочная сортировка: интерактивная анимация (Bucket Sort)

Распределение элементов по корзинам-диапазонам с последующей сборкой

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

Данные: Случайные
Данные:

Массив (разбирается на элементы)

Корзины (диапазоны значений)

Результат:

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

Блочная сортировка: принцип работы и распределение по корзинам

Идея алгоритма. Сначала мы разбиваем все возможные значения на несколько непересекающихся диапазонов равной ширины - "корзин" (buckets). Затем распределяем элементы входного массива по этим корзинам. Внутри каждой корзины элементы сортируются (обычно сортировкой вставками), после чего корзины склеиваются по порядку в итоговый массив.

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

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

По времени

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

Случай Время Комментарий
Лучший (равномерно) O(n + k) Элементы равномерно распределились по корзинам, внутри сортировка идет за O(1)
Средний O(n + k) При случайном распределении размер корзин мал, время остается линейным
Худший (все в одну корзину) O(n²) Все элементы падают в одну корзину, которая сортируется вставками

По памяти

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

Характеристика Оценка Комментарий
Дополнительная память O(n + k) Требуются массивы для k корзин и хранение n элементов вне исходного массива

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

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

Характеристика Оценка Комментарий
Устойчивость Да Зависит от используемой сортировки внутри корзины. Сортировка вставками устойчива, поэтому вся блочная сортировка остается устойчивой.

Примеры реализации блочной сортировки (Bucket Sort)

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