任务描述:阅读下面的代码,完成括号中的关键代码,完善程序,利用递归技术实现二分搜索,检查结果的正确性,将代码粘贴到方框中。
int BinSearch(int a[ ],int low, int high, int key)
{
if (low<=high)
{
int mid = (low+high)/2;//一分为二
if( )
return mid;//找到key,返回所在位置(递归结束)
else if(key<a[mid])
( )//递归求解
else if(key>a[mid])
( )//递归求解
}
else
return -1;//未找到返回-1
}
#include<iostream>
using namespace std;
int BinSearch(int a[ ],int low, int high, int key)
{
if (low<=high)
{
int mid = (low+high)/2;//一分为二
if(key == a[mid])
return mid;//找到key,返回所在位置(递归结束)
else if(key<a[mid])
(BinSearch(a,low,mid,key));//递归求解
else if(key>a[mid])
(BinSearch(a,mid,high,key));//递归求解
}
else
return -1;//未找到返回-1
}
int main()
{
int a[10] ;
for(int i =0;i < 10;i ++ ) cin >> a[i];
cout << endl;
int key;
cin >> key;
cout << BinSearch(a,0,9,key);
}
代码有部分参考老师和网络,仅为完成作业和交流学习