二分查找又称折半查找
适用场景:顺序存储结构且按有序排列
public static void main(String[] args) {
int[] array ={1,2,3,4,6,7,8,9,10};
int head=0; //记录头的值
int end=array.length-1; //记录尾的值
int num=8; //需要查找的值
while (head<=end){
int middle=(head+end)/2; //从中间开始查找 每次判断完之后 继续取中间值
if(array[middle]==num){ //如果找到就输出
System.out.println("num的位置在"+middle);
break;
}else if(array[middle]>num){ //如果num的值小于array[middle]的值 说明num的值在middle中间值的前面 所以要往前找 end要等于中间值middle
end=middle-1;
}else{ //如果num的值大于array[middle]的值 说明num的值在middle中间值的后面 所以要往后找 head要等于中间值middle
head =middle+1;
}
}
}