您的位置:首页 > 其它

二分查找

2015-07-14 16:59 323 查看
代码:(很快的哟。。。。。)

#include<stdio.h>

#define max 1000000

int A[max];

int bserach(int A[],int x,int y,int t)

{

while(x<y)

{

int m;

m=x+(y-x)/2;

if(A[m]==t)

{

return m;

}

else if(A[m]>t)

{

y=m;

}

else

{

x=m+1;

}

}

return -1;

}

int main()

{

int m,n;

while(scanf("%d%d",&m,&n)!=EOF)

{

int i,j,t,X;

for(i=0;i<m;i++)

{

scanf("%d",&A[i]);

}

for(j=0;j<n;j++)

{

scanf("%d",&t);

X=bserach(A,0,m,t);

printf("%d\n",X);

}

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: