java用减治法实现二分查找
时间: 2023-10-14 12:22:50 浏览: 156
JAVA实现二分查找
二分查找是一种经典的算法,Java中可以用减治法来实现。减治法也称为分而治之,其思想是将问题划分为多个子问题,然后对每个子问题进行处理,最终将结果合并起来得到最终结果。
Java代码如下:
```
public class BinarySearch {
public static int binarySearch(int[] nums, int target) {
int left = 0, right = nums.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (nums[mid] == target) {
return mid;
} else if (nums[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int target = 5;
int index = binarySearch(nums, target);
System.out.println(index);
}
}
```
上述代码中,先定义了一个 `binarySearch` 方法,该方法接收两个参数:一个整数数组 `nums` 和一个整数 `target`,该方法返回 `target` 在 `nums` 中的下标,如果 `target` 不存在于 `nums` 中,则返回 -1。在方法中,使用了一个 while 循环,每次循环都将数组划分为左右两部分,然后根据 `target` 的位置不断调整左右边界,最终得到目标值的下标。在 `main` 方法中,定义了一个数组和一个目标值,然后调用 `binarySearch` 方法,并将结果打印出来。
阅读全文