package day14;
public class binarysearch {
// 二分查找 前提是数组有序
public static void main(String[] args) {
int [] arr ={11,23,45,777,942};
int b = binaerseacrchmethod(arr, 0, arr.length, 121);
if (b==-1){
System.out.println("没找到");
}else {
System.out.println(b);
}
}
/**
*
* @param arr
* @param left 左边的值
* @param right 右边的值
* @param findval 查找的值
*/
public static int binaerseacrchmethod(int [] arr, int left, int right, int findval){
// 当left>right,结束递归
if (left>right){
return -1;
}
int mid=(left+right)/2;
int midval =arr[mid]; //中间值
if (findval>midval){
return binaerseacrchmethod(arr,mid+1,right,findval);
}else if (findval<midval){
return binaerseacrchmethod(arr,left,mid-1,findval);
}else {
return mid;
}
}
}
二分法查找(递归)
最新推荐文章于 2023-04-07 00:26:57 发布