用java写一个二分查找
时间: 2023-06-04 09:08:17 浏览: 33
这是一个技术问题,我可以为您提供答案。二分查找是一种快速查找有序数组的算法,具体实现流程如下:
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。
相关推荐


