[알고리즘] 너비 우선 탐색 BFS (Java)


[알고리즘] 너비 우선 탐색 BFS (Java)

깊이 우선 탐색 DFS 그래프 탐색 알고리즘 중 하나입니다. 너비 우선 탐색 BFS(Breadth First Search)는 탐색 과정에서 인접한 것을 우선적으로 탐색하는 알고리즘입니다. 깊이 우선 탐색 DFS는 스택 구조를 사용하는데 반해 BFS의 경우엔 큐를 사용합니다. 먼저 그림으로 BFS 과정을 확인해 보겠습니다. 시작점 1을 시작으로 인접 노드 2, 6, 7을 큐에 담고 1은 방문처리 합니다. 큐에 값을 하나씩 꺼내면서 방문하지 않은 인접 노드를 큐에 추가합니다. 여기선 노드 2를 방문처리하고 인접노드 3, 4를 큐에 담습니다. 다음 노드 6을 꺼내면서 방문처리하고 인접 노드가 없으므로 다음 노드 7을 꺼냅니다. 노드 7을 방문처리하고 인접 노드 8, 9를 큐에 담습니다. 다음 큐인 노드 3을 방문처리하고 인접 노드가 없으므로 다음 노드 4를 꺼냅니다. 노드 4를 방문처리하고 인접 노드 5를 큐에 담습니다. 남은 큐값들을 하나씩 방문처리 하며 (노드 8 > 노드 9 > 노드...


#BFS #너비우선탐색 #알고리즘

원문링크 : [알고리즘] 너비 우선 탐색 BFS (Java)