这是我的二进制搜索:
int binarySearch(int arr[], int value, int min, int max){
int pos = -1;
while (max >= min && pos == -1) {
int mid = (max+min)/2;
if(arr[mid] == value){
pos = mid;
}else if(arr[mid] < value){
min = mid +1;
}else if(arr[mid] > value){
max = mid -1;
}
}
return pos;
}
我这样称呼它:
//Arr contain values 0-63
int i = binarySearch(arr, 64, 0, 64);
这些是中间值
32 48 56 60 62 63 64
在最后一次检查中,当数组中的最后一个位置是 63 时,我尝试访问 pos 64 处的元素。
我的实施有什么问题?