Algorithm
We visit each node only once and each edge at most twice (for edge(v, w), we might encounter it when we're at node v and at node w).
Example
Consider the graph
Let s be the starting vertex.
Layer 0 is node s, then a and b are layer 1. So, when layer 0 is processed, we add layer 1 to queue.
Layer n+1 gets added to the queue when we process layer n.
Time Complexity:
Adjacency list implementation of graph - O(|V|+|E|) OR O(n+m) where |V| and |E| is number of vertices and edges for adjacency list representation of graph.
Running time for adjacency matrix - O(|V|2) OR O(n2)
where V - number of vertices and E number of edges which can be reached from the starting vertex. Also this is time complexity for adjacency list implementation.
Applications of BFS
- Starting at some arbitrarily chosen vertex s (s stands for start vertex) , we mark v so that we know we've visited it, process v, and
- then visit i.e. mark the vertex as visited and process all of v's neighbors.
- Now that we've visited and processed all of v's neighbors,
- we need to visit and process all of v's neighbors neighbors
BFS(graph G, vertex s)
[all nodes initially unexplored]
-mark s as explored
let Q = queue data structure, initialized with s
while (Q not empty)
remove the first node of Q, call it v
for each edge (v, w):
if w is unexplored
mark w as explored
add w to Q (at the end)
We visit each node only once and each edge at most twice (for edge(v, w), we might encounter it when we're at node v and at node w).
Example
Consider the graph
Let s be the starting vertex.
Layer 0 is node s, then a and b are layer 1. So, when layer 0 is processed, we add layer 1 to queue.
Layer n+1 gets added to the queue when we process layer n.
Time Complexity:
Adjacency list implementation of graph - O(|V|+|E|) OR O(n+m) where |V| and |E| is number of vertices and edges for adjacency list representation of graph.
Running time for adjacency matrix - O(|V|2) OR O(n2)
where V - number of vertices and E number of edges which can be reached from the starting vertex. Also this is time complexity for adjacency list implementation.
Applications of BFS







0 comments:
Post a Comment