C语言实现 二分查找数组中的Key值(递归和非递归) 基本问题:使用二分查找的方式,对数组内的值进行匹配,如果成功,返回其下标,否则返回 -1.请使用递归和非递归两种方法说明。 非递归代码如下: #include <stdio.h>intbinsearch(intarr[],intlen,intsrc) {intidx =0,l =0, r = len-1; idx= (l + r)/...
{ scanf("%d",&k);//输入要找的数字 printf("%d\n",found(0,9));//从数组a[0]到a[9]进行查找 return 0;}
include <stdio.h> int* binary_search( int* a, int* b, int n ){ int* m;while ( b > a ) { m = a + ( b - a ) / 2;if ( *m < n )a = m + 1;else if ( *m > n )b = m;else return m;} return NULL;} int main(){ int a[] = { 1,3,5,7,9,...
int binsh(int *a, int c, int low, int high)/*递归法实现的二分查找法,元素存在于a中则返回元素的第一个位置,不存在则返回-1*/ { int mid=(high+low)/2; if(lowhigh) return -1; if(ca[mid]) return binsh(a,c,mid+1,high); else if(ca[mid]) return binsh(a,c,low,mid-1); e...