洛谷P2249 【深基13.例1】查找,用二分查找做的,把Eclipse都给跑崩了,不知道哪里错了
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner (System.in);
int n=sc.nextInt();
int m=sc.nextInt();
int[] a=new int[n];
int[] b=new int[m];
for(int i=0;i<n;i++)
a[i]=sc.nextInt();
for(int j=0;j<m;j++)
b[j]=sc.nextInt();
for(int i=0;i<m;i++)
cha(a,b[i]);
}
public static void cha(int a[],int item)
{
int low=0;
int high=a.length;
while(low<=high)
{
int mid=(low+high)/2;
int guess=a[mid];
if(guess==item)
System.out.print(mid+1+" ");
if(guess>item)
high=mid-1;
if(guess<item)
low=mid+1;
else
System.out.print("-1");
}
}
}
找到结果之后你是不是应该break一下,要不死循环了