本关任务:编写方法sort(int[] data),实现对整型数组data按降序排序。然后在main()方法中输入10个整数,调用sort()排序,输出排序后的数据。
时间: 2025-06-25 21:00:13 浏览: 11
### Java 实现降序排序的方法
以下是基于 `Arrays.sort` 和自定义逻辑编写的降序排序方法。此方法通过先对数组进行升序排序,再反转数组顺序来完成降序排列。
#### 完整代码实现
```java
import java.util.Arrays;
import java.util.Scanner;
public class DescendingSort {
// 自定义降序排序方法
public static int[] descendingSort(int[] arr) {
if (arr == null || arr.length == 0) {
return arr; // 如果数组为空或长度为零,直接返回原数组
}
// 使用 Arrays.sort 对数组进行升序排序
Arrays.sort(arr);
// 反转数组中的元素位置以实现降序排序
for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
return arr; // 返回已排序的数组
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 输入提示
System.out.println("请输入10个整数:");
// 创建一个大小为10的数组用于存储用户输入的数据
int[] inputArray = new int[10];
// 循环读取用户的输入
for (int i = 0; i < 10; i++) {
System.out.printf("第%d个整数:", i + 1);
inputArray[i] = scanner.nextInt();
}
// 关闭Scanner对象
scanner.close();
// 调用降序排序方法
int[] sortedArray = descendingSort(inputArray);
// 输出排序后的结果
System.out.println("降序排序后的结果:");
System.out.println(Arrays.toString(sortedArray));
}
}
```
---
### 功能说明
1. **核心逻辑**
- 利用了 `Arrays.sort()` 方法对数组进行了升序排序[^1]。
- 接着通过双指针法交换首尾元素的位置,从而实现了降序排列。
2. **边界条件处理**
- 当传入的数组为 `null` 或者长度为 0 时,直接返回原始数组,避免运行错误。
3. **交互设计**
- 用户可以通过控制台依次输入 10 个整数值,程序会自动将其存入数组并调用降序排序方法输出结果。
---
### 测试样例
假设用户输入如下数据:
```
请输入10个整数:
第1个整数:5
第2个整数:3
第3个整数:8
第4个整数:6
第5个整数:7
第6个整数:2
第7个整数:9
第8个整数:1
第9个整数:4
第10个整数:0
```
程序输出的结果将是:
```
降序排序后的结果:
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
```
---
### 性能分析
- 时间复杂度:由于 `Arrays.sort()` 的时间复杂度为 \(O(n \log n)\),而后续的数组翻转操作的时间复杂度为 \(O(n)\),因此整体时间复杂度仍为 \(O(n \log n)\)[^1]。
- 空间复杂度:整个过程仅涉及常量级额外空间分配,故空间复杂度为 \(O(1)\)[^1]。
---
阅读全文
相关推荐















