Breadth First Search (BFS) Algorithm

hi guys, on this beautiful day we'll talk about Breadth-First Search
Definition of Breadth-First Search Algorithm (BFS)
Breadth-First Search: is an algorithm that traverses and searches in trees and graphs using recursion and queue data structure, this algorithm comes to avoid processing a node more than once.
Time complexity and Space complexity of BFS
Space complexlity O(V)
Time complexity O(V+E)
Breadth-First Search applications
  • Google maps
  • Cheney's algorithm
  • Search Engines
  • Peer to Peer Networking
  • Ford-Fulkerson algorithm
  • Breadth-First Search approach
  • Initialize a queue

  • Mark the node as visited by inserting it to a list

  • Insert the vertices into the queue

  • While len(queue) > 0:

    • Delete the first item of the queue
    • mark as visited and push all adjacents unvisited nodes of the deleted Item.
  • Breadth-First Search implementation in python
    If you are not familiar with python, I recommend you check this series
    # CODE FROM https://favtutor.com/blogs/breadth-first-search-python
    
    graph = {
      '5' : ['3','7'],
      '3' : ['2', '4'],
      '7' : ['8'],
      '2' : [],
      '4' : ['8'],
      '8' : []
    }
    
    visitedNodes = [] 
    queue = []   
    
    def bfs(visitedList: list, graph: dict, node):
        visitedList.append(node)
        queue.append(node)
    
        while queue:        
            m = queue.pop(0) 
            print (m, end = "\t") 
            for adjacent in graph[m]:
                if adjacent not in visitedList:
                    visitedList.append(adjacent)
                    queue.append(adjacent)
    
    bfs(visitedNodes, graph, '5') # 5 3 7 2 4 8
    References and useful resources
    Have a nice day!!

    34

    This website collects cookies to deliver better user experience

    Breadth First Search (BFS) Algorithm