题目描述
给你 n 个数,让你将它们排序,有两种排序的方式,当m=0时,升序排列,当m=1时,降序排列。
输入格式
多组测试数据,每组第一行输入两个整数,n (0<n<1000),m。接下来输入n个数。
输出格式
输出排列后的结果,每两个数之间有一个空格,最后一个数后面没有空格,需要换行。
样例输入content_copy
5 1
5 2 4 3 1
5 0
5 2 4 3 1
样例输出content_copy
5 4 3 2 1
1 2 3 4 5
/**
* 正反排序
* 题目描述
* 给你 n 个数,让你将它们排序,有两种排序的方式,当m=0时,升序排列,当m=1时,降序排列。
* 输入格式
* 多组测试数据,每组第一行输入两个整数,n (0<n<1000),m。接下来输入n个数。
* 输出格式
* 输出排列后的结果,每两个数之间有一个空格,最后一个数后面没有空格,需要换行。
* 样例输入
* 5 1
* 5 2 4 3 1
* 5 0
* 5 2 4 3 1
* 样例输出
* 5 4 3 2 1
* 1 2 3 4 5
* */
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
int n = input.nextInt();
int m = input.nextInt();
int[] a = new int[n];
if (m == 1) {
for (int i = 0; i < a.length; i++) {
a[i] = input.nextInt();
}
for (int i = 0; i < a.length; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[i] < a[j]) {
int t = a[i];
a[i]=a[j];
a[j]=t;
}
}
}
}
if (m==0){
for (int i = 0; i < a.length; i++) {
a[i] = input.nextInt();
}
for (int i = 0; i < a.length; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[i] > a[j]) {
int t = a[i];
a[i]=a[j];
a[j]=t;
}
}
}
}
for (int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}
}
该篇博客探讨了如何根据输入的参数m(0或1)实现整数数组的升序或降序排序。通过示例输入和输出展示了排序算法的工作原理,包括冒泡排序的正向和反向版本。博客内容涉及基本的排序算法实现,对于理解和实践编程中的排序问题具有指导意义。
776

被折叠的 条评论
为什么被折叠?



