Java实现二分查找及其索引
时间: 2024-04-07 19:25:51 浏览: 74
JAVA实现二分查找
Java实现二分查找及其索引的步骤下:
1. 首先,要确保查找的数组有序的。如果数组无序,需要先对数组进行排序。
2. 定义一个方法,传入待查找的有序、目标值和数组的起始索引和结束索引。
3. 在方法内部,使用循环来进行二分查找。循环条件是起始索引小于等于结束索引。
4. 在循环中,计算中间索引值:(起始索引 + 结束索引) / 2。
5. 比较中间索引对应的元素与目标值的大小关系:
- 如果中间元素等于目标值,则返回中间索引。
- 如果中间元素大于目标值,则在左半部分继续查找,将结束索引更新为中间索引-1。
- 如果中间元素小于目标值,则在右半部分继续查找,将起始索引更新为中间索引+1。
6. 如果循环结束仍未找到目标值,则返回-1表示未找到。
以下是Java代码示例:
```java
public class BinarySearch {
public static int binarySearch(int[] arr, int target) {
int start = 0;
int end = arr.length - 1;
while (start <= end) {
int mid = (start + end) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
end = mid - 1;
} else {
start = mid + 1;
}
}
return -1;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int target = 6;
int index = binarySearch(arr, target);
if (index != -1) {
System.out.println("目标值 " + target + " 的索引为 " + index);
} else {
System.out.println("未找到目标值 " + target);
}
}
}
```
阅读全文