查找原理:
将数组分为两半,将要查找的元素与中间值进行比较。如果大于中间值,去右边查找,再将要查找的元素与右边中间值进行比较,
如果还是大于中间值,再去右边查找,如此循环。
直至比较相等,查找成功。或者当数组下标首位相等,查找失败
public class T1 {
public static void main(String[] args) {
int[] arr = {-100,-23,-3,0,23,222,1345};
int dest = -100; //查找的值
int start = 0; //开始下标
int end = arr.length-1; //结束下标
boolean isFlag = true; //用于判断没有找到的情况
while (start <= end) { //循环条件
int middle = (start + end) / 2; //中间值
if (arr[middle] == dest) { //如果中间值等于目标值,查找成功
System.out.println("恭喜你找到了!下标为:" + middle);
isFlag = false; //控制不再执行"没有找到"这句话
break; //跳出循环
}else if (arr[middle] > dest) { //如果中间值大于目标值,说明目标值在左边
end = middle - 1; //调整结束下标为中间值左边一个
}else if (arr[middle] < dest) { //如果中间值小于目标值,说明目标值在右边
start = middle + 1; //调整开始下标为中间值右边一个
}
}
if (isFlag) { //如果循环结束还没有找到,提示没有找到
System.out.println("没有找到!");
}
}
}