패스잇
CS 기초 · 기초

이진 탐색(Binary Search) 알고리즘은 어떻게 동작하며, 이 알고리즘을 사용하기 위한 데이터의 전제 조건은 무엇인가요? 시간 복잡도는 어떻게 되나요?

힌트 · 이진 탐색은 정렬된 배열에서 중앙값을 기준으로 탐색 범위를 절반씩 줄여나갑니다. O(log N)의 시간 복잡도를 가집니다.

정렬된 배열중간값분할 정복로그 시간 복잡도O(log n)

모범답안

이진 탐색은 정렬된 배열에서 특정 값을 찾는 효율적인 알고리즘입니다. 먼저 배열의 중간 값을 확인하고, 찾으려는 값과 비교합니다. 만약 중간 값이 찾으려는 값보다 크면, 탐색 범위를 왼쪽 절반으로 좁히고, 작으면 오른쪽 절반으로 좁힙니다. 이 과정을 반복하여 값을 찾거나, 탐색 범위가 없어지면 값이 없다고 판단합니다.

이 알고리즘을 사용하려면 데이터가 반드시 정렬되어 있어야 합니다.

시간 복잡도는 O(log N)입니다. 매 단계마다 탐색 범위가 절반으로 줄어들기 때문에 데이터의 크기가 커져도 탐색 시간이 매우 빠르게 증가하지 않습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 알고리즘 면접 질문

← 알고리즘 면접 질문 전체 보기