#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int _binary_find(int* arr,size_t l,size_t r,int key)
{
if(l > r) return -1;
int pi = (l+r)/2;
if(key > arr[pi])
return _binary_find(arr,pi+1,r,key);
else if(key < arr[pi])
return _binary_find(arr,l,pi-1,key);
else return pi;
}
int binary_find(int* arr,size_t len,int key)
{
int l = 0 , r = len -1 ;
while(l <= r)
{
int pi = (l+r) / 2;
if(key > arr[pi])
l = pi + 1;
else if(key < arr[pi])
r = pi - 1;
else
return pi;
}
return -1;
}
void show_arr(int* arr,size_t len)
{
for(int i=0; i<len; i++)
{
printf("%d ",arr[i]);
}
printf("\n");
}
int main()
{
int arr[10];
for(int i=0; i<10; i++)
{
arr[i] = rand() % 100;
}
show_arr(arr,10);
printf("%d",binary_find(arr,10,86));
}