이진 탐색은 범위를 반으로 나눠가며 찾는 것이다. 선형 탐색보다 훨씬 빠르게 타겟을 찾을 수 있다. 시간 복잡도는 NlogN이다 주의할 점은, 이진 탐색에서 m의 왼쪽에 m보다 작은 요소가, 오른쪽에 m보다 큰 요소가 있는 걸 보장하기 위해, 이진 탐색 전에 배열은 반드시 정렬되어 있어야 한다. 예를 들어서, 9개의 요소를 가진 배열 arr가 있다고 가정하자. 1 2 3 4 5 6 7 8 9 이렇게 있을 때, 3을 찾는다고 하자. 일단 전체 arr[0] ~arr[8] 중 중간 요소가 3인지 확인한다. 타겟은 3보다 5가 크므로 5보다 아래에 있다는 소리이다. 그럼 다시 arr[0] ~ arr[3] 을 찾아본다. 중간((0+3)/2)은 arr[1] == 2 이다. 타겟 보다 작으므로 오른쪽에 있다는 소리다..