写一个二分查找用java语言
时间: 2023-05-25 12:03:21 浏览: 48
以下是使用Java语言编写的二分查找算法:
```java
public class BinarySearch {
public static int search(int[] arr, int x) {
int low = 0;
int high = arr.length - 1;
while (low <= high) {
int mid = low + (high - low) / 2;
if (arr[mid] == x) {
return mid;
} else if (arr[mid] < x) {
low = mid + 1;
} else {
high = mid - 1;
}
}
return -1;
}
public static void main(String[] args) {
int[] arr = {1, 3, 5, 7, 9, 11, 13};
int x = 7;
int result = search(arr, x);
if (result == -1) {
System.out.println("元素不存在");
} else {
System.out.println("元素位置为:" + result);
}
}
}
```
在该代码中,`search`方法使用循环实现了二分查找算法。首先,将数组中第一个元素的索引赋给`low`变量,将数组中最后一个元素的索引赋给`high`变量。然后,在while循环中,计算数组的中间索引,并将中间元素与目标元素进行比较。若中间元素等于目标元素,则返回中间索引;若中间元素小于目标元素,则将数组的左半部分作为新的查找区间;否则,将数组的右半部分作为新的查找区间。最终,若目标元素不存在于数组中,则返回-1。