二分查找原理:取中间元素与查找元素进行比较,如果查找元素比中间元素大,则在中间元素右边查找,如果查找元素比中间元素小,则在中间元素的左边查找。 代码如下: #include <stdio.h> int searchItem(int arr[] , int len , int value) { int low = 0,high = len-1; //定义下标 int mid; while(low <= high) { mid = (low + high)/2; if(value > arr[mid]) //若值大于arr[mid]则从其右区间开始计算 { low = mid + 1; } else if(value < arr[mid]) //若值大于arr[mid]则从其右区间开始计算 { high = mid - 1; } else // value = arr[mid] { return mid; } } return -1; //int 类型需要返回值 若value不在数组范围中 则返回-1; } int main() { int arr[10] = {0 ,10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90}; printf("该元素所在位置为%d\n",searchItem(arr,10,80)); return 0; } 运行结果如下: 整个过程中注意数组的下标是从0开始的。