깊이 우선 탐색 (DFS; Depth First Search)
루트 노드에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 알고리즘을 의미한다. 미로를 탐색할 때 한 방향으로 갈 수 있을 때까지 계속 가다가 더 이상 갈 수 없게 되면 다시 가장 가까운 갈림길로 돌아와서 이곳으로부터 다른 방향으로 다시 탐색을 진행한다. 즉, 넓게(wide) 탐색하기 전에 깊게(deep) 탐색 하는 것이다. 빠르게 모든 경우의 수를 탐색하고자 할 때 사용한다. 스택 이나 재귀함수 로 구현한다.
너비 우선 탐색 (BFS; Breadth First Search)
루트 노드에서 시작해서 인접한 노드를 먼저 탐색 하는 알고리즘이다. 즉, 깊게 (deep) 탐색하기 전에 넓게 (wide) 탐색 하는 것이다. 두 노드 사이의 최단경로 혹은 임의의 경로를 찾고 싶을 때 사용한다. 큐 를 이용해서 구현한다. (FIFO: First In First Out)
'CS > 자료구조 & 알고리즘' 카테고리의 다른 글
이터레이터 Iterator (반복자) (0) | 2022.06.16 |
---|---|
선 중 후 순회 트리 (0) | 2022.06.15 |
해시 테이블 (0) | 2022.06.12 |
레드-블랙 트리(Red-Black Tree) (0) | 2022.06.12 |
[C] 이진 탐색 트리 (0) | 2022.06.12 |