java考试结束了,全班同学的分数都出来了。老师需要对分数做一次排序,看看从高到低,分数的排列是怎样的。 输入格式: 第一行是一个n,表示班级同学的人数,1<=n<=500000。 第二行开始有n个分数,0<=分数<=100,分数都是整数,没有零点五分。 输出格式: 输出排序后的分数,按照从大到小排列,相同的分数排在一起,每两个分数之间间隔一个空格。
时间: 2024-03-09 17:45:45 浏览: 115
java快速入门
好的,这是一个经典的排序问题,可以使用快速排序或计数排序等算法来解决。以下是使用快速排序算法的Java代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] scores = new int[n];
for (int i = 0; i < n; i++) {
scores[i] = sc.nextInt();
}
quickSort(scores, 0, n - 1);
for (int i = 0; i < n; i++) {
System.out.print(scores[i] + " ");
}
}
public static void quickSort(int[] arr, int left, int right) {
if (left >= right) {
return;
}
int i = left;
int j = right;
int pivot = arr[i];
while (i < j) {
while (i < j && arr[j] <= pivot) {
j--;
}
if (i < j) {
arr[i] = arr[j];
i++;
}
while (i < j && arr[i] > pivot) {
i++;
}
if (i < j) {
arr[j] = arr[i];
j--;
}
}
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
}
```
这段代码首先读入班级同学的人数和分数,然后使用快速排序算法对分数进行排序,最后输出排序后的分数。
阅读全文