Базовый алгоритм для 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)
, и интуиция относительно того, почему это было бы действительно хорошо. Спасибо