若有 18 个元素的有序表存放在一维数组 A[19] 中,第一个元素放 A[1] 中,现进行二分查找,则查找 A [ 3 ]的比较序列的下标依次为 ( )
#include<iostream>
using namespace std;
void binSearch(int *num,int target,int low,int high);
int main()
{
int *num;
int target,numLength;
cout<<"请输入数组长度 "<<endl;
cin>>numLength;
num = new int[numLength+1];
cout<<"请输入要查找的数组"<<endl;
for(int i=1;i<=numLength;i++)
{
cin>>num[i];
}
cout<<"请输入要查找的数"<<endl;
cin>>target;
binSearch(num,target,1,numLength);
return 0;
}
void binSearch(int *num,int target,int low,int high)
{
if(low > high)
cout<<"查找失败!";
else
{
int mid = (low+high)/2;
cout<<mid<<" ";
if(num[mid] > target)
binSearch(num,target,low,mid-1);
else if(num[mid] < target)
binSearch(num,target,mid+1,high);
else
cout<<"\n查找成功!";
}
}
临时写了一下,结果为9 4 2 3