2. 너비 우선 탐색

기능 특징 시간 복잡도(노드 수: V, 에지 수: E)
그래프 완전 탐색 FIFO 탐색 Queue 자료구조 이용 O(V + E)

✅ 너비 우선 탐색의 핵심 이론

  1. BFS를 시작할 노드를 정한 후 사용할 자료구조 초기화하기
    1. BFS는 방문했던 노드는 다시 방문하지 않으므로 방문한 노드를 체크하기 위한 배열이 필요하다.
    2. 그래프를 인접 리스트로 표현한다.
    3. 탐색을 위해 스택이 아닌 큐를 사용한다.

image.png

  1. 큐에서 노드를 꺼낸 후 꺼낸 노드의 인접 노드를 다시 큐에 삽입하기
    1. 큐에서 노드를 꺼내면서 인접 노드를 큐에 삽입한다. 이떄 방문 배열을 체크하여 이미 방문한 노드는 큐에 삽입하지 않는다.
    2. 큐에서 꺼낸 노드는 탐색 순서에 기록한다.

image.png

  1. 큐 자료구조에 값이 없을 때까지 반복하기
    1. 큐에 노드가 없을 때까지 앞선 과정을 반복한다.

image.png