Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 코딩테스트
- collections.sort
- divide and conquer
- 삽입정렬
- 트라이
- Timsort
- 해시함수
- 15552번
- 이진트리탐색
- 퀵정렬
- 팀정렬
- 연결리스트
- 분할정복
- 스터디
- 우선순위 큐
- heap
- MSA
- 코테준비
- 코테
- LinkedList
- 큐
- 파싱
- 거품정렬
- 선택정렬
- 힙
- 스택
- 프로그래머스
- 백준
- stack
- 자료구조
Archives
- Today
- Total
Little bIT awesome
[week5] DFS 와 BFS 본문
DFS
DFS는 Depth First Search의 약자로 깊이 우선 텀색을 말한다.
DFS는 자기 자신을 호출하는 순환 알고리즘의 형태를 지닌다.
위의 그림처럼 0에서 1로, 1에서 3으로 갔을 때 더 이상 갈 곳이 없으면 백트래킹을해서 다시 1로 가게 됨
이후에 방문하지 않은 4를 방문하게 되는 형태
해당 분기에서 갈 수 있을떄까지 계속 가다가 더 이상 갈 수 없게 되면
다시 가장 가까운 갈림길로 돌아와서 다른 방향으로 다시 탐색을 진행하는 방식
대게 Stack을 사용하고 모든 노드를 방문하고자 할 때 사용한다.
BFS보다 더 간단하게 구현되지만 검색 속도 자체는 BFS에 비해 느리다.
BFS
BFS는 Breadth First Search의 약자로 너비 우선 탐색을 말한다.
BFS는 재귀적으로 동작하지 않고 방문한 노드들을 차례로 저장한 후 꺼낼 수 있는 큐(Queue)를 사용한다.
즉, 선입선출 원칙으로 탐색
시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하기 때문에
대게 두 노드 사이의 최단 경로를 찾을 때 주로 사용한다.
Java 알고리즘 DFS와 BFS 완벽 정리
오늘은 Java 알고리즘에서 빼먹을 수 없는 DFS와 BFS에 대해 알아보려고 합니다. DFS는 Depth First Search의 약자로 깊이 우선 탐색을 말하고, BFS는 Breadth First Search의 약자로 너비 우선 탐색을 말합니다.
binco.tistory.com
'코딩테스트 > 알고리즘 정리' 카테고리의 다른 글
[week6] 그리디 알고리즘 (0) | 2024.03.26 |
---|---|
인접 행렬과 인접 리스트 (0) | 2024.03.20 |
Brute-Force, 백트래킹, DFS (1) | 2024.03.15 |
[week4] 백트래킹(Backtracking) 알고리즘 (1) | 2024.03.15 |
[Week3] 분할 정복 (Divide and Conquer) (0) | 2024.02.16 |