studyjun.log
로그인
studyjun.log
로그인
BFS(너비 우선 탐색)의 이해
윤준혁
·
2024년 10월 9일
팔로우
0
개념 정리
BFS(너비 우선 탐색)란?
BFS는 그래프를 완전 탐색하는 방법 중 하나
시작 노드에서 출발해 시작 노드를 기준으로 가까운 노드를 먼저 방문하면서 탐색하는 알고리즘
기능 : 그래프 완전 탐색
특징 : FIFO 탐색, Queue 자료구조 이용
시간 복잡도(노드 수 : V, 에지 수 : E) : O(V + E)
너비 우선 탐색은 탐색 시작 노드와 가까운 노드를 우선하여 탐색하므로 목표 노드에 도착하는 경로가 여러 개일 때 최단 경로를 보장
BFS의 핵심 이론
DFS와 마찬가지로 방문했던 노드는 다시 방문하지 않으므로 방문한 노드를 체크하기 위한 배열이 필요
그래프를 인접 리스트로 표현하는 것 역시 DFS와 동일
탐색을 위해 스택이 아닌 큐를 사용하는 것이 차이점
방식
1. 시작할 노드를 정한 후 사용할 자료 구조 초기화
2. 큐에서 노드를 꺼낸 후 꺼낸 노드의 인접 노드를 다시 큐에 삽입
이때 방문 배열을 체크하여 이미 방문한 노드는 큐에 삽입하지 않음
큐에서 꺼낸 노드는 탐색 순서에 기록
3. 큐 자료구조에 값이 없을 때까지 반복
선입선출 방식으로 탐색하므로 탐색 순서가 DFS와 다름
윤준혁
study
팔로우
이전 포스트
DFS(깊이 우선 탐색)의 이해
다음 포스트
이진 탐색(Binary Search)
0개의 댓글
댓글 작성