获取开始的位置和结束的位置,折半查找,如果中间的值等于查找的值这说明查找成功
import java.util.Scanner;
public class Main7 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int data[]=new int[200];
for (int i = 0; i < data.length; i++) {
data[i]=i;
}
int n=sc.nextInt();
//存储开始位置
int start=0;
//存储最后位置
int end=data.length-1;
//存储中间位置
int middle=0;
while(start<=end) {
//向右移一位,相当于除以二,移两位相当于除以4,这个可能效率相对来说比直接除以2高一点
middle=(start+end)>>1;
if(n==data[middle]) {
System.out.println("查找成功,位置为:"+middle);
break;
}else if(n>data[middle]){
//n>data[middle]说明要向后移
start++;
}else {
//n<data[middle]向前移
end--;
}
}
if(start>end){
System.out.println("查找失败");
}
}
}