CS STUDY/알고리즘
DFS & BFS
cha_eyoon
2024. 3. 19. 19:17
DFS(Depth-First Search)
개념
- 루트노드에서 시작해 다음 분기로 넘어가기 전 해당 분기를 완벽하게 탐색
- 스택 or 재귀함수로 구현
특징
- 장점
- 최단 경로 빠르게 찾을 수 있다.
- 단점
- 경로가 매우 길 경우 많은 기억 공간 필요
- 비연결 그래프일 경우, 모든 그래프 탐색 후 실패
BFS(Breadth First Search)
개념
- 루트 노드에서 시작해 인접한 노드를 먼저 탐색하는 방식으로 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어진 정점을 나중에 방문
- 큐를 이용해 구현
특징
- 장점
- 적은 메모리 사용
- 찾으려는 노드가 깊은 단계에 있는 경우 BFS보다 빠름
- 단점
- 경로가 존재하지 않아도 끝날 때까지 탐색
- 최단 경로 찾기 힘듬