- 배열의 중간에 내가 찾고자 하는 값이 있는지 확인한다.
- 중간값이 내가 찾고자 하는 값이 아닐 경우, 오름차순으로 정렬된 배열에서 중간값보다 큰 값인지 작은 값인지 판단한다.
- 찾고자 하는 값이 중간값보다 작은 값일 경우, 배열의 맨 앞부터 중간값 전까지의 범위를 탐색 범위로 잡고 탐색을 반복 수행한다.
- 찾고자 하는 값이 중간값보다 큰 값일 경우, 배열의 중간값의 다음 값부터 맨 마지막까지를 탐색 범위로 잡고 탐색을 반복 수행한다.
A의 진출 차수는 1개 : A -> C
[0][2] === 1
// A는 배열의 0번째이고 C[2]로 가는 진출 차수가 있다.(true=1)
B의 진출차수는 2개 : B —> A, B —> C
[1][0] === 1
// B[1]은 A[0]으로 가는 진출 차수가 있다(true=1)
[1][2] === 1
// B[1]는 C[2]로 가는 진출차수가 있다(true=1)
C의 진출차수는 1개 : C -> A
[2][0] === 1
// C[2]는 A[0]로 가는 진출차수가 있다(true=1)
Q : 왜 최단 경로를 찾을때 BFS 방식을 사용할까?
A : 한 경로를 끝까지 모두 다 탐색하는 처음 발견한 답이 최단 거리가 아닐 수 있지만, BFS는 현재 있는 노드에서 가까운 곳부터 탐색하므로 경로를 탐색하는 도중 가장 먼저 발견한 해답이 최단거리라는 보장이 되기 때문입니다.