DEV//UNIT
← АлгоритмыReal-world Development

Round Robin

По кругу и всем поровну: расхождение максимум один слот.

время O(1) nextпамять O(n)уровень: начальный
Что происходит сейчас0/0
Нажмите Play, чтобы запустить сценарий
TypeScript — активная строка подсвечена шагом
1class RoundRobin<T> {
2 private items: T[]
3 private idx = 0
4
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 item
11 }
12}

Проблема

По кругу и всем поровну: расхождение максимум один слот.

Что вы видите

Указатель next ходит по клиентам; лог слотов показывает абсолютную справедливость.

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

Простейший планировщик и балансировщик: без приоритетов, но без голодания. Основа fair-шардинга.

Пошаговый разбор

  1. 01

    next

    Индекс по модулю числа клиентов.

  2. 02

    Слот

    Каждый получает по очереди.

  3. 03

    Справедливость

    Разница ≤ 1 слот.

Complexity и ограничения

time
O(1) next
space
O(n)

См. complexity в шапке страницы.

Edge cases

  • Пустой вход

    Корректно завершается без лишних шагов.

  • Вырожденный случай

    Минимум работы — сразу ответ.

Где встречается в реальности

Продукт

Классический приём в реальных системах.

Собеседования

Стандартный вопрос на понимание структуры.

Связанные алгоритмы

Shorts

«Балансировка без приоритетов: по кругу»

Тот же сценарий StepSequence в вертикальной композиции — с safe zones и записью WebM ниже на странице.

Shorts 9:16

Вертикальная композиция строится той же последовательностью шагов, что и страница: safe zones отмечены пунктиром (там живёт UI платформ), биты сценария подсвечиваются по прогрессу. Кнопка записи сохраняет WebM — детерминированная StepSequence даёт воспроизводимый ролик без монтажа.

Балансировка без приоритетов: по кругу
Нажмите Play
Бит 1/6 · 0–2 с
Hook
script-setup.ru/algorithms/round-robin