之前没试验过多种情况,这个应该是精简可行的
/******************************************************
* Author : Aaron92
* Date : 2016-06-12 08:57
* Filename : Binarysearch.c
* Description :
******************************************************/
#include<stdio.h>
int Binarysearch(int *a,int n,int x){
int left = 0, right = n-1,middle;
while(left <= right){
middle = (left + right)/2;
if(x == a[middle]){
return 1;
}else{
if(x > a[middle]){
left = middle+1;
}else{
right = middle-1;
}
}
}
return -1;
}
void main(int argc,char ** argv){
int a[10] = {0,1,2,3,4,5,6,7,8,9};
int x = 0;
int result;
result = Binarysearch(a,10,x);
printf("%d\n",result);
}