不确定为什么这不返回元素的索引?

Not Sure why this doesn't return the index of the element?

本文关键字:索引 元素 返回 为什么 不确定      更新时间:2023-10-16

不知道为什么这不返回搜索元素的 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),因为二进制搜索只会看到数组的后半部分,从而返回一个索引到后半部分。