Java可以尝试写下智能排序菜单程序(数组、冒泡排序算法)
时间: 2023-08-14 22:05:03 浏览: 45
当然可以!以下是使用 Java 编写的智能排序菜单程序,使用了数组和冒泡排序算法:
```java
import java.util.Scanner;
public class Main {
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎使用智能排序菜单程序!");
System.out.println("请依次输入需要排序的数字,每个数字输入完后按回车键,最后输入q结束输入。");
int[] arr = new int[100];
int index = 0;
while (true) {
String num = scanner.nextLine();
if (num.equals("q")) {
break;
}
try {
arr[index] = Integer.parseInt(num);
index++;
} catch (NumberFormatException e) {
System.out.println("输入格式有误,请重新输入。");
}
}
if (index == 0) {
System.out.println("输入为空,程序结束。");
} else {
int[] newArr = new int[index];
for (int i = 0; i < index; i++) {
newArr[i] = arr[i];
}
System.out.println("输入的数字为:");
for (int i = 0; i < index; i++) {
System.out.print(newArr[i] + " ");
}
System.out.println();
System.out.println("请选择排序方式:");
System.out.println("1. 从小到大排序");
System.out.println("2. 从大到小排序");
String choice = scanner.nextLine();
if (choice.equals("1")) {
bubbleSort(newArr);
} else if (choice.equals("2")) {
bubbleSort(newArr);
for (int i = 0; i < index / 2; i++) {
int temp = newArr[i];
newArr[i] = newArr[index - i - 1];
newArr[index - i - 1] = temp;
}
} else {
System.out.println("输入有误,程序结束。");
return;
}
System.out.println("排序后的数字为:");
for (int i = 0; i < index; i++) {
System.out.print(newArr[i] + " ");
}
System.out.println();
}
}
}
```
程序首先使用 `Scanner` 类读取用户输入的数字,将其存储在数组中。随后用户可以选择排序方式,程序会根据用户的选择使用冒泡排序算法对数组进行排序,并输出排序后的结果。
注意,这个程序只是一个简单的示例,还有很多可以改进的地方。例如,可以添加更多的排序算法和排序方式,或者对用户输入进行更详细的错误检查。