Skip to content

Commit 6322a69

Browse files
committed
fix: delete wrong code about dfs
1 parent 0782789 commit 6322a69

File tree

1 file changed

+20
-32
lines changed

1 file changed

+20
-32
lines changed

알고리즘/DFS,BFS.md

+20-32
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# DFS, BFS
22

3-
대표적인 탐색 알고리즘인 DFS, BFS에 대해 알아보자
4-
3+
대표적인 탐색 알고리즘들인 DFS, BFS에 대해 알아보자
54

5+
<br>
66

77
## DFS
88

@@ -12,44 +12,31 @@ DFS(Depth-First Search)는 깊이 우선 탐색 알고리즘으로, 그래프에
1212

1313
<img src="https://blog.kakaocdn.net/dn/xC9Vq/btqB8n5A25K/GyOf4iwqu8euOyhwtFuyj1/img.gif" alt="img" style="zoom:50%;" />
1414

15-
15+
<br>
1616

1717
### 동작 과정
1818

19-
1. 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다.
20-
2. 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리를 한다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다.
21-
3. 2번의 과정을 더 이상 수행할 수 없을 때까지 반복한다.
22-
19+
1. **스택을 사용한 방식**
2320

21+
1. 탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다.
2422

25-
### 시간 복잡도
23+
2. 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 스택에 넣고 방문 처리를 한다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼낸다.
2624

27-
: **Θ(V + E)**
25+
3. 2번의 과정을 더 이상 수행할 수 없을 때까지 반복한다.
2826

27+
2. **재귀를 이용한 방식**
28+
1. 현재 노드를 방문 처리
29+
2. 현재 노드와 연결된 다른 노드를 재귀적으로 방문
2930

31+
<br>
3032

31-
### 코드
33+
### 시간 복잡도
3234

33-
```js
34-
// 스택
35-
const bfs = (graph, startNode) => {
36-
const visited = []; // 탐색을 마친 노드들
37-
const queue = []; // 탐색해야할 노드들
35+
: **Θ(V + E)**
3836

39-
queue.push(startNode);
37+
<br>
4038

41-
while (queue.length !== 0) {
42-
const node = queue.shift();
43-
44-
if (!visited.includes(node)) {
45-
visited.push(node);
46-
queue = [...queue, ...graph[node]];
47-
}
48-
}
49-
50-
return visited;
51-
};
52-
```
39+
### 코드
5340

5441
```js
5542
// 재귀 함수
@@ -65,7 +52,7 @@ const dfs = (graph, node, visited) => {
6552
}
6653
```
6754

68-
55+
<br>
6956

7057
## BFS
7158

@@ -75,21 +62,21 @@ BFS(Breadth-First Search)는 너비 우선 탐색 알고리즘으로, 그래프
7562

7663
<img src="https://blog.kakaocdn.net/dn/c305k7/btqB5E2hI4r/ea7vFo08tkDYo4c8wkfVok/img.gif" alt="img" style="zoom:50%;" />
7764

78-
65+
<br>
7966

8067
### 동작 과정
8168

8269
1. 탐색 시작 노드를 큐에 삽입하고 방문 처리를 한다.
8370
2. 큐에서 노드를 꺼내 해당 노드의 인접 노드 중에서 방문하지 않은 노드를 모두 큐에 삽입하고 방문 처리를 한다.
8471
3. 2번의 과정을 더 이상 수행할 수 없을 때까지 반복한다.
8572

86-
73+
<br>
8774

8875
### 시간 복잡도
8976

9077
: **Θ(V + E)**
9178

92-
79+
<br>
9380

9481
### 코드
9582

@@ -112,3 +99,4 @@ const bfs = (graph, startNode) => {
11299
return visited;
113100
};
114101
```
102+

0 commit comments

Comments
 (0)