#include <stdio.h>
int bfind(int a[], int val, int start, int end)
{
int mid = (start+end)/2;
if (a[mid] > val)
{
return bfind(a, val, start, mid);
}
else if (a[mid] < val)
{
return bfind(a, val, mid, end);
}
else
return mid;
}
int bfind2(int a[], int val, int start, int end)
{
int mid = (start+end)/2;
while (a[mid] != val)
{
if (a[mid] > val)
{
end = mid;
}
else if (a[mid] < val)
{
start = mid;
}
mid = (start+end)/2;
}
return mid;
}
int main(int argc, char const *argv[])
{
int a[] = {1,2,3,4,5,6,7,8,9};
//int index = bfind(a, 5, 0, sizeof(a)-1);
int index = bfind2(a, 5,0, sizeof(a)-1);
printf("%d\n", index);
return 0;
}