Базовый алгоритм для BFS:
set start vertex to visited
load it into queue
while queue not empty
for each edge incident to vertex
if its not visited
load into queue
mark vertex
Поэтому я думаю, что временная сложность будет:
v1 + (incident edges) + v2 + (incident edges) +.... + vn + (incident edges)
где v
— вершина с 1
по n
. Во-первых, правильно ли я сказал? Во-вторых, как это O(N + E)
, и интуиция, почему это было бы действительно приятно. Спасибо