이분 == 이진 == binary
탐색 = search
정렬이 되어있는 배열일때, 어떤 값의 위치를 찾는다.
#include <stdio.h>
int arr[11]={1,3,4,5,7,8,11,13,15,17};
//binary_search
int bs(int s, int e, int k) // arr[s] ~ arr[e]에서 k값의 위치를 리턴
{
if(s>e) return -1; //못찾았을때
int mid = (s+e)/2; //가운데 위치
if(arr[mid]==k) return mid;
else if(arr[mid]<k) bs(mid+1,e,k);
else bs(s,mid-1,k);
}
int main()
{
int k;
scanf("%d",&k);
printf("%d",bs(0,9,k));
return 0;
}