1. java编写应用程序将数组中的数据进行排序,然后使用折半法判断用户输入的一个整数是否在数组中(数组中的数组要求从键盘录入)。
时间: 2024-09-28 16:10:13 浏览: 42
利用数组进行数据查找--折半查找法介绍-c语言编程——计算机专业的教材
在Java中,你可以通过以下步骤编写一个程序来完成这个任务:
1. **创建并初始化数组**:
使用`Scanner`类获取用户输入,创建一个整数数组。例如:
```java
import java.util.Arrays;
import java.util.Scanner;
public int[] getArray(int size) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数组元素的数量:");
int count = scanner.nextInt();
int[] array = new int[count];
for (int i = 0; i < count; i++) {
System.out.println("请输入第" + (i+1) + "个元素:");
array[i] = scanner.nextInt();
}
scanner.close();
return Arrays.copyOf(array, count); // 使用Arrays.copyOf避免数组越界
}
```
2. **对数组排序**:
使用`Arrays.sort()`函数对数组进行升序排列:
```java
public void sortArray(int[] array) {
Arrays.sort(array);
System.out.println("排序后的数组: " + Arrays.toString(array));
}
```
3. **折半查找**(二分查找):
创建一个方法用于搜索目标值,这里使用折半查找算法:
```java
public boolean binarySearch(int[] array, int target) {
int left = 0;
int right = array.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (array[mid] == target) {
return true;
} else if (array[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false;
}
```
4. **主方法**:
最后,在主函数中调用上述所有功能,并处理用户输入和查找操作:
```java
public static void main(String[] args) {
int[] inputArray = getArray(5); // 示例:假设用户输入5个元素
sortArray(inputArray);
int searchNumber = 0; // 或者从用户输入获取
boolean found = binarySearch(inputArray, searchNumber);
if (found) {
System.out.println(searchNumber + " 在数组中.");
} else {
System.out.println(searchNumber + " 不在数组中.");
}
}
```
阅读全文