《C程序设计语言》6.3 例题的二分查找变形
#include <stdio.h>
/*二分查找*/
int binsearch(int *, int key, int n);
int main()
{
int array[6] = {2, 3, 4, 5, 6, 7};
printf("%d\n", binsearch(array, 7, 6));
return 0;
}
//二分查找
int binsearch(int *array, int key, int n)
{
int low = 0, high = n-1, mid;
while(low <= high){
mid = (low + high) / 2;
if(key < array[mid]){
high = mid - 1;
}
else if(key > array[mid])
low = mid + 1;
else
return mid;
}
return -1;
}