<aside> 📖 Contents

</aside>

⚫️ 탐색(검색) 알고리즘

▪️ 이진탐색 동작 방식

1️⃣ 이미 정렬된 10개의 데이터 중에서 값이 4인 원소를 찾는 예시를 살펴보자.

Untitled

2️⃣ 시작점은 0, 끝점은 9, 중간점 4로 설정 가능 (index)

Untitled

보통 중간점이 두개 존재하는 경우, 중간점 인덱스 값에서 소수점 이하는 제거하고 중간점을 찾는다.

찾고자 하는 값, 4와 비교해서 중간점위치의 값이 더 크다면, 중간점을 포함한 오른쪽에 있는 값들은 확인하지 않고 넘어간다. 여기의 경우 지금 우리가 찾고자하는 값 4보다 중간점 8이 더 크기때문에 더 작은 부분만 탐색을 다시 시작한다.

3️⃣ 시작점 0, 끝점 3, 중간점 1

Untitled

지금은 중간점 값인 2보다 우리가 찾고자하는 값이 더 크기 때문에, 우리는 중간점을 포함해서 왼쪽을 모두 버린다.

4️⃣ 시작점 2, 끝점 3, 중간점 2

Untitled

중간점 위치의 4가 우리가 찾고자하는 값과 동일하기 때문에 탐색을 멈춘다. 이로써 우리가 찾고자하는 값은 index 2의 위치에 존재한다고 알 수 있다.

이렇게 우리는, 우리가 찾고자하는 값의 위치나, 존재여부를 확인 가능하다.

▪️ 이진 탐색의 시간복잡도 → O(logN)