P115 例6-2 给出在有序数组a中查找数据元素x是否存在的递归算法,并说明递归算法的执行过程。
#include<stdio.h>
int BSearch(int a
[],int x
,int low
,int high
)
{
int mid
;
if(low
>high
)
return -1;
mid
=(low
+high
)/2;
if(x
==a
[mid
])
return mid
;
else if(x
<a
[mid
])
return BSearch(a
,x
,low
,mid
-1);
else
return BSearch(a
,x
,mid
+1,high
);
}
int main()
{
int a
[]={1,3,4,5,17,18,31,33};
int x
=17;
int bn
;
bn
=BSearch(a
,x
,0,7);
if(bn
==-1)
printf("x不在数组a中");
else
printf("x在数组a中,下标为%d",bn
);
return 0;
}
转载请注明原文地址:https://blackberry.8miu.com/read-46844.html