不确定为什么这不返回元素的索引?
Not Sure why this doesn't return the index of the element?
不知道为什么这不返回搜索元素的 te 索引。输入是排序的数组,它的大小和要找到的元素。
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);
}
}
如果key > a[mid]
,你必须返回mid + binarySearch(a+(mid), size-mid, key)
,因为二进制搜索只会看到数组的后半部分,从而返回一个索引到后半部分。
相关文章:
- 在对向量中查找元素的索引
- 当该数组的索引中没有元素时,指针指向什么?
- 如何在 STL 函数中找到传递给谓词的元素的索引?
- 如何在C++中递归地找到max元素的索引?
- 编译器(Visual C++)如何优化按索引访问矢量元素?
- 保持排序的数据结构,允许log N插入时间,并且可以返回我在log N中查找的元素的索引
- 使用推力根据索引更改某些元素的值
- 为什么 min_element() 返回最小元素的索引,而不是迭代器?
- CPtrList - 如何获取元素的索引?
- 获取结构 c++ 中元素的索引
- C++ STL 数据结构常时按索引推送/弹出/随机访问,并具有指向元素的可靠指针
- 矢量指针索引处的读取元素
- C++函数返回两个 char 数组的相同索引元素
- C++如何获取索引I处的元素,并检查它在向量或数组中是否为空
- 使用索引与迭代器将向量迭代到倒数第二个元素
- 从数组中搜索元素的索引
- 程序必须将奇数索引元素放在新的向量 C 中,将偶数索引元素放在另一个向量 T 中
- 当结构数组在主线程中填充数据时,从结构数组的低索引元素读取是否线程安全
- 为什么空字符串可以在C++中输出索引 0 元素
- 循环范围在使用索引元素时不起作用