Java中的二分搜索

今天带大家了解一下Java中的二分搜索,希望对大家的学习有所帮助。
二分查找的思路分析:
二分查找 对于一个有序的数组 一分为二
int[] arr={1,2,3,4,5,6,7,8};
找到值为8 在数组中的索引
1.顺序查找 要依次寻找8次
2.二分查找 只要4次
二分查找思路:
最大索引
maxIndex=arr.length-1;
最小索引
minIndex=0;
中间索引
halfIndex=(maxIndex+minIndex)/2
第一次
halfIndex=3
比较arr[3]和8的大小 如果arr[3]比8小 说明8肯定不会存在在arr[3]左边
第二次
最大的索引
maxIndex=arr.length-1;//7
最小索引
minIndex=halfIndex+1;//4
中间索引
halfIndex=(maxIndex+minIndex)/2 //5
比较arr[5]和8的大小 如果arr[5]比8小 说明8肯定不会存在在arr[5]左边
第三次
最大的索引
maxIndex=arr.length-1;//7
最小索引
minIndex=halfIndex+1;//6
中间索引
halfIndex=(maxIndex+minIndex)/2 //6
比较arr[6]和8的大小 如果arr[6]比8小 说明8肯定不会存在在arr[6]左边
第四次
最大的索引
maxIndex=arr.length-1;//7
最小索引
minIndex=halfIndex+1;//7
中间索引
halfIndex=(maxIndex+minIndex)/2 //7
比较arr[7]和8的大小 找到结果
代码实现:
在这里插入图片描述以上为二分搜索的整个实现过程。

猜你喜欢

转载自blog.csdn.net/shuaiXu233/article/details/89331297