定义一个排好序的数组,int[] arr = new int[]{11, 22, 33, 44, 55, 66, 77, 88},要求使用二分查找实现以下功能,输入一个数,在数组中查找有无这个数。如果有则输出对应的索引,否则输出提示信息,没有这个数
时间: 2024-03-05 19:52:35 浏览: 117
对数组进行二分查找
好的,以下是使用 Java 语言编写的二分查找程序:
```java
public class BinarySearch {
public static void main(String[] args) {
// 定义排好序的数组
int[] arr = new int[]{11, 22, 33, 44, 55, 66, 77, 88};
// 输入待查找的数
int target = 44;
// 使用二分查找在数组中查找目标数
int left = 0, right = arr.length - 1, mid;
while (left <= right) {
mid = (left + right) / 2;
if (arr[mid] == target) {
System.out.println("目标数 " + target + " 的索引为:" + mid);
return;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
// 如果未找到,则输出提示信息
System.out.println("未找到目标数 " + target);
}
}
```
程序的输出结果为:
```
目标数 44 的索引为:3
```
以上程序中,我们先定义了排好序的数组 `arr` 和待查找的数 `target`。然后使用二分查找的思想,先将数组分成左右两个部分,然后每次取中间元素进行比较。如果中间元素恰好是目标数,那么直接输出它的索引即可;如果中间元素小于目标数,那么就在右半部分继续查找;如果中间元素大于目标数,那么就在左半部分继续查找。如果最后未找到目标数,则输出提示信息。
阅读全文