자료 구조와 알고리즘
배열 가운데의 원소와 비교하여 찾는 범위를 절반씩 좁혀 가는 이진 탐색을 사용하기 위한 전제 조건으로 올바른 것은?
- A데이터의 개수가 2의 거듭제곱일 것
- B데이터가 키 순서로 정렬되어 있을 것
- C데이터에 같은 값이 포함되어 있지 않을 것
정답과 해설 보기
정답: B. 데이터가 키 순서로 정렬되어 있을 것
이진 탐색은 가운데 원소와 비교한 결과로 목표 값이 앞쪽 절반과 뒤쪽 절반 중 어디에 있는지를 정하여 범위를 절반으로 줄입니다. 이는 데이터가 정렬되어 있기 때문에 할 수 있는 판단이며, 정렬되어 있지 않은 배열에는 사용할 수 없습니다. 데이터의 개수가 2의 거듭제곱이 아니어도, 가운데 위치를 (하한 + 상한) ÷ 2의 버림 등으로 정하면 문제없이 동작합니다. 같은 값이 포함되어 있어도 탐색은 가능하며, 그 값 중 어느 하나가 발견됩니다(첫 위치를 구하려면 약간의 궁리가 필요합니다).