建设官方网站的作用,wordpress中文包,湖北住房和城乡建设厅网站,校园二手网站源码本文已收录于专栏#x1f338;《Java入门一百练》#x1f338;学习指引序、专栏前言一.sort函数二、【例题1】1、题目描述2、解题思路3、模板代码4、代码解析二、【例题1】1、题目描述2、解题思路3、模板代码4、代码解析三、推荐专栏序、专栏前言 本专栏开启#xff0c;目的…本文已收录于专栏《Java入门一百练》学习指引序、专栏前言一.sort函数二、【例题1】1、题目描述2、解题思路3、模板代码4、代码解析二、【例题1】1、题目描述2、解题思路3、模板代码4、代码解析三、推荐专栏序、专栏前言 本专栏开启目的在于帮助大家更好的掌握学习Java特别是一些Java学习者难以在网上找到系统地算法学习资料帮助自身入门算法同时对于专栏内的内容有任何疑问都可在文章末尾添加我的微信给你进行一对一的讲解。 但最最主要的还是需要独立思考对于本专栏的所有内容能够进行完全掌握自己完完全全将代码写过一遍对于算法入门肯定是没有问题的。 算法的学习肯定不能缺少总结这里我推荐大家可以到高校算法社区将学过的知识进行打卡以此来进行巩固以及复习。 学好算法的唯一途径那一定是题海战略大量练习的堆积才能练就一身本领。专栏的任何题目我将会从【题目描述】【解题思路】【模板代码】【代码解析】等四板块进行讲解。
一.sort函数 sort函数顾名思义就是一个排序函数它可以按照我们传递参数的要求来将数组变得有序。虽然我们前面讲过好几种排序但真正遇到排序的需求时我们并不会去手写一个排序函数而是使用库函数自带的排序其底层实现主要是以快速排序为主复杂度我们可以视为 O(nlogn)。O(nlogn)。O(nlogn)。 如何是想对数组进行排序我们需要调用Arrays这个包里的sort函数如果是集合类需要进行排序我们则调用的是Collections包里的sort。排序时我们可以传参指定部分区间排序也可以选择是从小到大还是从大到小当然默认是从小到大进行排序。
二、【例题1】
1、题目描述 输入一个正数 nnn, 然后输出 nnn 个整数请先将其顺序输出后再进行逆序输出 2、解题思路
我们根据题意直接进行排序输出即可
3、模板代码
数组
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scnew Scanner(System.in);int nsc.nextInt();Integer[] anew Integer[n];for (int i 0; i n; i) {a[i]sc.nextInt();}Arrays.sort(a);for (int i 0; i n; i) {System.out.println(a[i]);}Arrays.sort(a, Collections.reverseOrder());for (int i 0; i n; i) {System.out.println(a[i]);}}
}集合
import java.util.*;public class Main{public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();ListInteger listnew ArrayList();for (int i 0; i n; i) {int xsc.nextInt();list.add(x);}Collections.sort(list);for (int i 0; i n; i) {System.out.println(list.get(i));}Collections.sort(list,Collections.reverseOrder());for (int i 0; i n; i) {System.out.println(list.get(i));}}
}4、代码解析
升序排序很好理解但降序排序我们重点提一下。因为排序的方式默认为升序排序如果想降序排序最简单的方式就是传多一个参数Collections.reverseOrder()。但此时如果数组类型是int会报错所以我们需要使用包装类Integer所以如果大家以后需要降序排序时数组类型可以使用Integer。
二、【例题1】
1、题目描述 输入三个正数 nnnlll, rrr , 然后输出 nnn 个整数请将下标 [l,r][l,r][l,r] 排序后输出 2、解题思路
只排序某个区间我们只需要多传入两个参数 lll 和 rrr 即可。
3、模板代码
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();int lsc.nextInt();int rsc.nextInt();int[] anew int[n];for (int i 0; i n; i) {a[i]sc.nextInt();}Arrays.sort(a,l,r1);for (int i 0; i n; i) {System.out.println(a[i]);}}
}4、代码解析
需要注意一点Arrays.sort传入参数排序的区间范围是 [l,r)[l,r)[l,r)左闭右开区间如果我们想排序区间[l,r][l,r][l,r]那么我们传入的参数应该是 lll 和 r1r1r1。
三、推荐专栏
《零基础学算法100天》学习有疑问