简单编写java代码带注解,要求如下,- -折半查找(二分查找法)【前提数 组要正序排序】 99 [1, 5, 43, 45, 64, 65,99, 101, 978] --先从数组中间开始找,如果查找的数>中间值,则在后面找;如果查找的数<中间值,则在前面面找 --如果第一次找不到,则二分从后面(前面)的中间继续找,直到起始位置>结束位置就退出循环
时间: 2023-06-18 20:03:15 浏览: 107
采用折半查找和顺序查找来查找某个数
以下是Java代码实现:
```java
public class BinarySearch {
/**
* 折半查找(二分查找法)
* 前提:数组要正序排序
* 如果查找的数>中间值,则在后面找;
* 如果查找的数<中间值,则在前面找;
* 如果第一次找不到,则二分从后面(前面)的中间继续找,直到起始位置>结束位置就退出循环
*
* @param arr 待查找的数组
* @param target 要查找的数
* @return 目标数在数组中的下标,如果没找到则返回-1
*/
public static int binarySearch(int[] arr, int target) {
int left = 0;
int right = arr.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
public static void main(String[] args) {
int[] arr = {1, 5, 43, 45, 64, 65, 99, 101, 978};
int target = 99;
int index = binarySearch(arr, target);
if (index == -1) {
System.out.println("未找到目标数");
} else {
System.out.println("目标数的下标为:" + index);
}
}
}
```
以上代码中,使用了注释来说明每一步的操作,实现了折半查找(二分查找法)。
阅读全文