编写程序实现折半查找。输入待查找的值num,当找到num后显示其在数组(1, 5, 6, 9, 11, 17, 25, 34, 38, 41)中的下标位置,若是找不到显示“no found!”。java
时间: 2023-09-28 11:12:04 浏览: 63
折半查找2.java 使用java实现
好的,以下是折半查找的 Java 代码:
```java
public class BinarySearch {
public static void main(String[] args) {
int[] arr = {1, 5, 6, 9, 11, 17, 25, 34, 38, 41};
int num = 11;
int left = 0;
int right = arr.length - 1;
int mid;
while (left <= right) {
mid = (left + right) / 2;
if (arr[mid] == num) {
System.out.println("num 的下标位置为:" + mid);
return;
} else if (arr[mid] > num) {
right = mid - 1;
} else {
left = mid + 1;
}
}
System.out.println("no found!");
}
}
```
在上面的代码中,我们首先定义了一个数组 arr 和待查找的值 num。然后,我们定义了 left 和 right 变量,分别代表数组的左右边界。接着,我们通过 while 循环不断缩小查找范围,直到找到 num 或者查找范围为空。循环中,我们通过 mid 变量计算中间位置,然后判断 num 在左侧还是右侧,从而更新 left 和 right 变量。最后,如果找到了 num,就输出其下标位置,否则输出 "no found!"。
阅读全文