思路(PPT)
将要查找的元素和数组中间的元素比较,如果没找到则继续折半
代码
int nums[] = {2, 5, 9, 1, 3};
System.out.println(Arrays.toString(nums));
//先排序,必要条件,不然无法左右两边数值
Arrays.sort(nums);
System.out.println(Arrays.toString(nums));
//假设一个查找的数字
int num = 9;
//进行折半
int zhongjian = (nums.length - 1) / 2;
boolean pd = true;
do {
//开始比较,先和数组中间的值进行比较
if (num > nums[zhongjian]) {
//查找的数字大于中间数字,说明数字可能在右边
zhongjian++;
} else if (num < nums[zhongjian]) {
//查找的数字小于中间数字,说明数字可能在左边
zhongjian--;
} else if (num == nums[zhongjian]) {
System.out.println("找到了,下标为:" + zhongjian);
break;
}
//判断下标不能低于0也不能高于最大值
if