-1
不知道为什么这不会返回搜索到的元素的索引。输入是排序的数组,它的大小和要找到的元素。不知道为什么这不会返回元素的索引?
int binarySearch(int a[], int size, int key){
int mid = (size)/2;
if(a[mid] == key){
return mid;
}else if(size ==1 || size ==0){
return -1;
}
if(key<a[mid]){
return binarySearch(a, mid, key);
}else if (key > a[mid]){
return binarySearch(a+(mid), size-mid, key);
}
}
如果您正在学习C++,请努力学习标准库以及诸如'std :: vector'之类的东西。传递数组指针/大小对只是一个巨大的混乱。 – tadman
找到问题答案的正确方法是使用调试器。 – aschepler
请提供一个小失败的例子(即'a'的内容和''key'的值)。 –