public class find_two {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 5, 6, 8, 9, 34, 45, 57};
int value = 22;
int i = find(arr, value, 0, arr.length - 1);
if (i == -1){
System.out.println("没有找到");
}else {
System.out.println("找到下标为:" + i);
}
}
//二分法查找有序数组
public static int find(int[] arr, int value, int left, int right) {
if (left > right){
return -1;
}
int mid = (left + right) / 2;
if (arr[mid] < value) {
//位于右边
return find(arr,value,mid + 1,right);
} else if (arr[mid] > value) {
//位于左边
return find(arr,value,left,mid - 1);
} else {
//就是arr[mid]本身
return mid;
}
}
}
Java数据结构--二分查找
最新推荐文章于 2024-08-16 23:08:28 发布