//前提是查找的数组已是有序 #include<cstdio> //非递归 int binary(int *arr,int low,int high,int key) { while(low <= high) { int mid = (low + high) / 2; if(key == arr[mid]) { return mid; } else if(key > arr[mid]) { low = mid + 1; } else { high = mid -1; } } return -1; } //递归 int bin_rec(int *arr, int low, int high, int key) { if(low <= high) { int mid = (low + high) / 2; if(key == arr[mid]) { return mid; } else if(key > array[mid]) { bin_rec(arr,mid+1,high,key); } else { bin_rec(arr,low,mid-1,key); } } return -1; }