c - C中的递归二进制搜索程序

标签 c binary-search

我正在尝试在 C 中创建一个递归二分搜索函数。我想我有它,但是当我尝试编译时,我在两个递归调用中都收到错误“expected primary-expression before ']' token”。有谁知道为什么会这样?

我的功能:

int binSearch(int val, int a[], int size)
{
         int mid;
         mid=(size)/2;
         if(val==a[mid]) return a[mid];
         else if(val<a[mid]) {
              return binSearch(val, a[], (size-mid));
         }
         else if(val>a[mid]) {
              return binSearch(val, a[], size);
         }
         else return(-1);
 }

其中a[]是排序后的数组,size是数组的大小,val是要查找的值。

最佳答案

你只需要传入a,而不是a[]。像这样:

 return binSearch(val, a, size);

关于c - C中的递归二进制搜索程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10274277/

相关文章:

java - 数组的工作结构。 java中的binarySearch()方法

c - 尝试从 recv() 字符数组解析十进制 dstAddr.sin_addr.s_addr

c - 有没有办法以编程方式将名称解析限制为/etc/hosts 中存在的条目?

c - 从某一点找到数组的最小值

objective-c - 赋值还是 memcpy?设置数组成员变量的首选方法是什么?

algorithm - 为了更快速地搜索,难道不应该在进行二分搜索之前对数据应用合并排序,还是直接跳到线性搜索?

objective-c - 如何对 NSArray 进行二分查找?

python - 在列表中执行二分搜索 - Python

python - 为什么 python 内置的二进制搜索功能运行速度如此之快?

C程序设计语言