DEV//UNIT

Компоненты связности

Сколько в графе «островков» — обход с раскраской каждой компоненты.

время O(V + E)память O(V)уровень: начальный
Что происходит сейчас0/0
Нажмите Play, чтобы запустить сценарий
TypeScript — активная строка подсвечена шагом
1function components(graph: Map<string, string[]>): string[][] {
2 const visited = new Set<string>()
3 const result: string[][] = []
4
5 for (const start of graph.keys()) {
6 if (visited.has(start)) continue
7
8 const comp: string[] = []
9 const stack = [start]
10 visited.add(start)
11 while (stack.length > 0) {
12 const v = stack.pop() as string
13 comp.push(v)
14 for (const next of graph.get(v) ?? []) {
15 if (!visited.has(next)) {
16 visited.add(next)
17 stack.push(next)
18 }
19 }
20 }
21 result.push(comp)
22 }
23
24 return result
25}

Проблема

Сколько в графе «островков» — обход с раскраской каждой компоненты.

Что вы видите

Каждый незапущенный запуск DFS красит новый остров своим цветом.

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

Прогон DFS/BFS из каждой непосещённой вершины: каждый запуск — одна компонента. Сети, соцграфы, сегментация изображений.

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

  1. 01

    Новая вершина

    Не посещена — новая компонента.

  2. 02

    Обход

    Красим всё достижимое.

  3. 03

    Счёт

    Число запусков = число компонент.

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

time
O(V + E)
space
O(V)

См. 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/connected-components