#include <stdio.h>
#include <stdlib.h>
/*
* 二分查找:适用于有序数组
*/
int binary_search(const int *arr, int len, int data){
int low = 0;
int high = len - 1;
int mid = (low+high)/2;
while (arr[mid] != data && low <= high){
if(arr[mid] > data){
mid = (mid+low)/2;
}else{
mid = (mid+high)/2;
}
}
if(low > high){
return -1;
} else{
return mid;
}
}
int main(){
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
printf("index = %d\n",binary_search(arr,10,3));
return 0;
}