Що робить обхід у ширину (BFS)?
Обхід у ширину (BFS - Breadth-First Search) - це алгоритм, який поступово досліджує граф «по шарах», починаючи із заданої вершини і рухаючись спочатку до всіх її сусідів, потім до сусідів цих сусідів і так далі.
Ідея
BFS шукає всі вершини, що перебувають на мінімальній відстані від початкової, перш ніж іти далі. Він використовує чергу (FIFO), щоб обробляти вершини в порядку їх відкриття.
Покроково
- Помістити стартову вершину в чергу і позначити як відвідану.
- Поки черга не порожня:
- Витягти вершину з черги.
- Додати в чергу всіх її невідвіданих сусідів і позначити їх.
- Повторювати, поки не обійдемо всі досяжні вершини.
Приклад
Для графа:
javascript
A - B - C
| |
D - EЯкщо почати з A, порядок обходу буде: A → B → D → C → E
Застосування
- Пошук найкоротшого шляху в незважених графах.
- Перевірка зв'язності графа.
- Визначення рівнів (глибини) вершин.
- Пошук «хвилеподібних» зв'язків, наприклад, у задачах про поширення сигналів.
Підсумок: BFS - це поярусний обхід графа з використанням черги, який знаходить усі вершини в порядку їхньої «близькості» до стартової.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.