Round Robin
По кругу и всем поровну: расхождение максимум один слот.
1class RoundRobin<T> {2 private items: T[]3 private idx = 04 5 constructor(items: T[]) { this.items = items }6 7 next(): T {8 const item = this.items[this.idx % this.items.length]!9 this.idx++10 return item11 }12}Проблема
По кругу и всем поровну: расхождение максимум один слот.
Что вы видите
Указатель next ходит по клиентам; лог слотов показывает абсолютную справедливость.
Как это работает
Простейший планировщик и балансировщик: без приоритетов, но без голодания. Основа fair-шардинга.
Пошаговый разбор
- 01
next
Индекс по модулю числа клиентов.
- 02
Слот
Каждый получает по очереди.
- 03
Справедливость
Разница ≤ 1 слот.
Complexity и ограничения
См. complexity в шапке страницы.
Edge cases
- Пустой вход
Корректно завершается без лишних шагов.
- Вырожденный случай
Минимум работы — сразу ответ.
Где встречается в реальности
Продукт
Классический приём в реальных системах.
Собеседования
Стандартный вопрос на понимание структуры.
Связанные алгоритмы
«Балансировка без приоритетов: по кругу»
Тот же сценарий StepSequence в вертикальной композиции — с safe zones и записью WebM ниже на странице.
Shorts 9:16
Вертикальная композиция строится той же последовательностью шагов, что и страница: safe zones отмечены пунктиром (там живёт UI платформ), биты сценария подсвечиваются по прогрессу. Кнопка записи сохраняет WebM — детерминированная StepSequence даёт воспроизводимый ролик без монтажа.