: 이진 탐색은 정열된 자료에서 '중앙값'을 이용해 검색 범위를 줄여나가며 값을 조회하는 알고리즘 방법
mid value = low value + (high value - low value) / 2
low value = mid value + 1
high value = mid value - 1
const serachValue = 2;
let midValue = Math.floor(0 + (3 - 0)) / 2 // 1
let highValue = array.length - 1
let lowValue = 0;
while (lowValue !== midValue) {
if (midValue === searchValue) {
return 'successfully searched'
} else if (midValue > searchValue) {
lowValue = midValue + 1;
midValue = lowValue + (highValue - lowValue) / 2
} else if (midValue < searchValue) {
highValue = midValue - 1;
midValue = lowValue + (highValue - lowValue) / 2
} else {
return "have no found serach value"
}
}
만약 search value가 동일하고, 배열의 크기만 늘릴 경우, 배열의 크기가 2배로 늘어날 때마다 최대 이진 탐색 단계는 1씩 증가합니다. 예를 들어 배열의 크기가 3이고 최대 탐색 단계가 2단계라면, 배열의 크기가 2배인 6으로 늘어났을 때는 탐색 단계가 3단계로 1 증가하게 됩니다.