二分查找的原理及代码
/*
* 二分查找的原理:
* 二分查找算法,也叫折半查找算法;
* 二分查找针对的是一个有序的数组,每次都通过跟区间的中间元素对比;
* 将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为0。
* */
public static boolean binarysearch(int[] arrays,int num) {
//索引的最大值
int max = arrays.length - 1;
//索引的最小值
int min = 0;
//索引的中间值
int mid;
do{
//获取索引的中间值
mid = (max+min) / 2;
//将需要查找的元素与索引中间值对应的元素进行比较
if(arrays[mid] > num){
//如果要查找的元素小于索引中间值对应的元素
//则将最大值的位置移到中间值的位置并减一
max = mid - 1;
}else if(arrays[mid] < num){
//如果要查找的元素大于索引中间值对应的元素
//则将最小值的位置移到中间值的位置并加一
min = mid + 1;
}
//索引最小值大于索引最大值,则表示要查找的元素不存在数组中
if(max < min){
return false;
}
}while (arrays[mid] != num);
return true;
}