정렬된 배열에서 first와 last 의 가운데인 mid 값이 찾고자 하는 값보다 크거나 작거나 또는 같은지 여부에 따라 지속적으로 이분할해서 탐색하는 원리
반복문 또는 재귀함수로 구현 가능 => 탈출 설정을 잘 이해해야 한다
반복문에선 while ( first <= last ) 과 같은 경우에만 실행,
first 와 last 가 만나는 시점에서 종료할 시 해당 위치의 데이터는 검사하지 않고 끝나기 때문
while(first <= last)
{
mid = (first + last) / 2;
if(target == array[mid])
return mid;
else
{
if(target < array[mid])
last = mid - 1;
else
first = mid + 1;
}
}