1、应用条件
1.1、储存在数组中
1.2、有序(如果是无序的要先排序)
2、实现方法
2.1递归实现
int BinarySearch(int array[], int low, int high, int value){
if(low>high)
return -1;
int mid=low+(high-low)/2;
if(array[mid]==value)
return mid;
else if(array[mid]>value)
return BinarySearch(array, low, mid-1, value);
else
return BinarySearch(array, mid+1, high, value);
}
2.2非递归实现
int BinarySearch(int array[], int len, int value){
if (array==NULL||len<=0)
return -1;
int low = 0;
int high = len-1;
while(low<=high){
int mid = low+(high-low)/2;
if (array[mid]==value)
return mid;
else if(array[mid]>value)
high = mid-1;
else
low = mid+1;
}
return -1;
}