-
[Algorithm] BFS와 DFSAlgorithm 2020. 7. 7. 21:19728x90
DFS(Depth-First Search)
- 루트 노드 또는 임의의 노드에서 다음 브랜치로 넘어가기 전에 해당 브랜치를 모두 탐색하는 방법
- 스택 or 재귀함수를 이용해 구현
- 모든 경로를 방문해야 할 경우에 적합함
- 시간 복잡도(정점의 수 : N, 간선의 수 : E)
- 인접 행렬 : O(V^2)
- 인접 리스트 : O(V+E)
BFS(Breadth-First Search)
- 루트 노드 또는 임의의 노드에서 인접한 노드부터 먼저 탐색하는 방법
- 큐를 이용해 구현
- 최소 비용이 우선일 때 적합함
- 시간 복잡도(정점의 수 : N, 간선의 수 : E)
- 인접 행렬 : O(V^2)
- 인접 리스트 : O(V+E)
728x90'Algorithm' 카테고리의 다른 글
[백준] 10870번 피보나치 수 (0) 2020.12.12 [백준] 10872번 팩토리얼 (Node.js) (0) 2020.12.12 [백준] 3053번 택시 기하학 (JAVA) (0) 2020.05.22 [백준] 4153번 직각삼각형 (JAVA) (0) 2020.05.22 [백준] 3009번 네 번째 점 (JAVA) (0) 2020.05.21