#include <stdio.h>
int main()
{
int n,m;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
int b[m];
for(int t=0;t<m;t++)
scanf("%d",&b[t]);
int mid,h=n,l=0;
for(int i=0;i<m;i++)
{
mid=n/2;
h=n;
l=0;
while(1)
{
if(a[mid]<b[i])
{
l=mid;
mid=(l+h)/2;
}
else if(a[mid]>b[i])
{
h=mid;
mid=(l+h)/2;
}
printf("%d %d %d\n",mid,l,h);
if(a[mid]==b[i])
{
if(i!=m-1)
printf("%d\n",mid);
else
printf("%d",mid);
break;
}
if(mid==l||mid==h)
{
if(i!=m-1)
printf("Not found!\n");
else
printf("Not found!");
break;
}
}
}
}
h=n-1
数组从0开始算,h=n-1
不知道你这个问题是否已经解决, 如果还没有解决的话: