BFS的时间复杂度取决于节点数和边数。假设节点数为V,边数为E,则BFS的时间复杂度为O(V+E)。
下面是一个Python的BFS代码示例:
from collections import deque
def bfs(graph, start):
visited = set()
queue = deque([start])
while queue:
node = queue.popleft()
if node not in visited:
visited.add(node)
queue.extend(graph[node] - visited)
return visited
在这个代码示例中,我们使用deque作为队列,并维护一个visited集合来记录已经访问过的节点。我们从起始节点开始遍历,将其加入队列并标记为已访问。然后通过扩展队列,将其邻居(未访问过的节点)加入队列中。最终返回visited集合即可。
上一篇:BFS超时
下一篇:BFS地图绘制在C#中