思路(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 (zhongjian < 0) {
pd = false;
} else if (zhongjian > (nums

本文介绍了二分查找法的思路,包括先决条件——数组需排序,然后通过计算中间下标,利用do-while循环进行比较。当找到目标值时结束循环,否则根据比较结果调整查找范围。虽然二分查找节省了资源,但前提是需要排序,其效率并不一定高于简单for循环查找。
最低0.47元/天 解锁文章
1367

被折叠的 条评论
为什么被折叠?



