用Java写一个二分查找
时间: 2023-04-11 12:00:31 浏览: 54
二分查找是一种在有序数列中查找特定元素的算法。下面是用Java实现二分查找的代码示例:
```
public static int binarySearch(int[] array, int target) {
int left = 0;
int right = array.length - 1;
while (left <= right) {
int middle = (left + right) / 2;
if (array[middle] == target) {
return middle;
} else if (array[middle] < target) {
left = middle + 1;
} else {
right = middle - 1;
}
}
return -1;
}
```
上面的代码实现了二分查找的基本流程:首先定义左右两个指针,分别指向数组的最左边和最右边,然后通过不断缩小查找范围并判断中间元素是否与目标值相等,来找到目标元素的位置。如果最终没有找到,则返回-1。
相关问题
用java写一个二分查找
这是一个技术问题,我可以为您提供答案。二分查找是一种快速查找有序数组的算法,具体实现流程如下:
1. 定义查找范围,一般为数组的左右边界,设为left和right。
2. 计算中间位置mid,mid = (left + right) / 2。
3. 如果中间位置的值与要查找的值相等,则直接返回mid下标。
4. 如果中间位置的值大于要查找的值,则在mid左侧继续二分查找。
5. 如果中间位置的值小于要查找的值,则在mid右侧继续二分查找。
6. 如果left>right,则说明要查找的值不存在,返回-1表示找不到。
以下是Java代码实现二分查找的函数:
```
public static int binarySearch(int[] nums, int target) {
int left = 0, right = nums.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (nums[mid] == target) {
return mid;
} else if (nums[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
```
调用方法如下:
```
int[] nums = {1, 3, 5, 7, 9};
int target = 5;
int index = binarySearch(nums, target);
```
其中,nums为要查找的有序数组,target为要查找的值,index为返回的下标,如果找不到则为-1。
相关推荐

