网站优化效果,jsp 网站建设,酒店加盟什么网站建设,点餐小程序开发需要多少钱描述
输入整型数组和排序标识#xff0c;对其元素按照升序或降序进行排序
数据范围#xff1a; 1≤n≤1000 #xff0c;元素大小满足 0≤val≤100000
输入描述#xff1a;
第一行输入数组元素个数 第二行输入待排序的数组#xff0c;每个数用空格隔开 第三行输入一…描述
输入整型数组和排序标识对其元素按照升序或降序进行排序
数据范围 1≤n≤1000 元素大小满足 0≤val≤100000
输入描述
第一行输入数组元素个数 第二行输入待排序的数组每个数用空格隔开 第三行输入一个整数0或1。0代表升序排序1代表降序排序
输出描述
输出排好序的数字
示例1
输入
8
1 2 4 9 3 55 64 25
0
复制输出
1 2 3 4 9 25 55 64
复制
示例2
输入
5
1 2 3 4 5
1
复制输出
5 4 3 2 1
答案1
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();Integer[] nums new Integer[n]; // 使用 Integer 类型的数组for (int i 0; i n; i) {nums[i] scanner.nextInt();}int k scanner.nextInt();if(k0){Arrays.sort(nums);}else{Arrays.sort(nums, Collections.reverseOrder()); // 将升序排列的结果反转} for (int i 0; i n; i) {System.out.print(nums[i] );}}
}详解1
本题与此题考察点一致。
华为OD机试“HJ58 输入n个整数输出其中最小的k个”Java编程解答-CSDN博客 在Java中Collections.reverseOrder() 是一个静态方法返回一个 Comparator 对象该对象可以用于对对象进行降序排序。Comparator 是一个函数式接口用于定义对象之间的比较规则。 在这种情况下我们使用 Collections.reverseOrder() 来创建一个 Comparator 对象然后将其传递给 Arrays.sort() 方法以便对数组进行降序排序。这意味着在排序数组时比较器会将较大的元素排在前面较小的元素排在后面。 总结一下Collections.reverseOrder() 返回一个降序比较器用于对数组或集合进行降序排序。 答案2
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt(); // 数组元素个数int[] arr new int[n]; // 创建数组// 输入待排序的数组for (int i 0; i n; i) {arr[i] scanner.nextInt();}int sortFlag scanner.nextInt(); // 排序标识0代表升序1代表降序// 根据排序标识进行排序if (sortFlag 0) {Arrays.sort(arr); // 升序排序} else {Arrays.sort(arr); // 先进行升序排序reverse(arr); // 然后反转数组实现降序排序}// 输出排序后的数组for (int num : arr) {System.out.print(num );}}// 反转数组private static void reverse(int[] arr) {int start 0;int end arr.length - 1;while (start end) {int temp arr[start];arr[start] arr[end];arr[end] temp;start;end--;}}
}详解2
自己写reverse函数进行反转将升序改为降序。