일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Machine Learning
- 안드류응
- DATE_FORMAT
- sql
- 프로그래머스
- map
- SQL공부
- sql오답노트
- 머신러닝
- coursera
- 프로그래머스SQL
- 머신러닝강의
- 코세라머신러닝
- programmers
- WHERE
- POP
- orderby
- 코세라강의
- sorted
- Andrew NG
- 코세라
- mysql
- 코세라머신러닝강의
- 경제공부
- 인프런sql강의
- groupby
- PYTHON
- 파이썬
- Algorithm
- 알고리즘
- Today
- Total
미래를 예측하는 데이터분석가
[Algorithm] 알고리즘 BFS, DFS란 무엇인가? 본문
- BFS vs DFS
DFS와 BFS를 직관적으로 잘 보여주는 그림이다.
1. DFS (Depth First Search) : 깊이 우선 탐색
말 그래로 그래프 또는 트리에서 깊이를 우선하여 탐색하는 알고리즘이다.
* 주로 사용하는 목적은 모든 노드를 방문하고자 할 때 쓰임
1-1 순환하는 원리
DFS 알고리즘은 스택을 이용해 구현할 수 있다.
1-2 알고리즘 스택의 DFS 과정
4 | ||||
3 | 3 | |||
2 | 2 | 2 | ||
1 | 1 | 1 | 1 | |
0 | 0 | 0 | 0 | 0 |
첫 번째 두 번째 세 번째 네 번째 다섯 번째
3 | ||||
2 | 2 | |||
1 | 1 | 1 | ||
0 | 0 | 0 | 0 |
여섯 번째 일곱 번째 여덟 번째 열 번째 열한 번째
하나씩 벽돌을 쌓듯이 쌓다가 마지막에 들어온 순서대로 차례로 나가는(Last In First Out, LIFO) 원리로 트리가 순환하게 됩니다.
2. BFS(Breadth First Search) : 너비 우선 탐색
트리 또는 그래프에서 너비를 우선하여 탐색하는 알고리즘이다.
* 주로 사용하는 목적은 최단 경로 찾기가 대표적임
2-1 순환하는 원리
BFS는 큐를 이용해 구현할 수 있다.
References
dawoonjeong.com/algorithm-graph-bfs-dfs/
[Algorithm] 그래프 순회(Graph Traversal) - BFS, DFS
Graph Traversal (그래프 순회) - BFS, DFS Breath First Search (BFS) 너비우선 탐색 Queue 인접점 우선 모든 인접 노드를 탐색하는 그래프 순회 알고리즘 가장 가까운 노드를 선택하고 탐색되지 않은 모든 노드
dawoonjeong.com
[자료구조와 알고리즘] DFS (깊이 우선 탐색)
그래프 탐색 중 깊이 우선 탐색의 개념과 과정 설명 및 문제 적용
velog.io
gmlwjd9405.github.io/2018/08/15/algorithm-bfs.html
[알고리즘] 너비 우선 탐색(BFS)이란 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
'알고리즘 > 공부하기' 카테고리의 다른 글
[Algorithm] 알고리즘 우선순위 큐와 힙 그리고 스택 (0) | 2021.02.03 |
---|