Breadth First Search time complexity analysis

后端 未结 6 1582
说谎
说谎 2020-12-12 16:31

The time complexity to go over each adjacent edge of a vertex is, say, O(N), where N is number of adjacent edges. So, for V numbers of

6条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-12 17:02

    I hope this is helpful to anybody having trouble understanding computational time complexity for Breadth First Search a.k.a BFS.

    Queue graphTraversal.add(firstVertex);
    
    // This while loop will run V times, where V is total number of vertices in graph.
    while(graphTraversal.isEmpty == false)
    
        currentVertex = graphTraversal.getVertex();
    
        // This while loop will run Eaj times, where Eaj is number of adjacent edges to current vertex.
        while(currentVertex.hasAdjacentVertices)
            graphTraversal.add(adjacentVertex);
    
        graphTraversal.remove(currentVertex);
    

    Time complexity is as follows:

    V * (O(1) + O(Eaj) + O(1))
    V + V * Eaj + V
    2V + E(total number of edges in graph)
    V + E
    

    I have tried to simplify the code and complexity computation but still if you have any questions let me know.

提交回复
热议问题