问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
1、第一行为一个整数n。
2、第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9
题目解析
1、在第一行输入一个整数n,在第二行输入n个整数,以数组的方式来保存
int n = scanner.nextInt();
int num[] = new int[n];
2、用for循环遍历所输入的n个整数
for(int i = 0; i < n ; i++)
num[i] = scanner.nextInt();
3、利用Array.sort()来进行排序,对所输入的数进行从小到大的排序
Arrays.sort(num);
4、最后只需要遍历,把数输出
for(int i : num)
System.out.print(i+" ");
参考代码
package Java.practice.homework;
import java.util.Arrays;
import java.util.Scanner;
public class Homework02
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int num[] = new int[n];
for(int i = 0; i < n ; i++)
num[i] = scanner.nextInt();
Arrays.sort(num);
for(int i : num)
System.out.print(i+" ");
}
}
用法扩展
1、关于 ==Arrays.sort(num);==用法
1)如本题所使用的Arrays.sort(num):Arrays.sort(数组)
即对一个数组的所有元素进行排序,而且排序的时候是从小到大
2)Arrays.sort(数组, 从第X个数开始循环【起始位置】, 循环到第Y个数停止【终止位置】)
如:在{3,5,9,7,0}中,只让第1到第4位之间的排序按照从小到大,最后输出为:3 5 7 9 0
package Java.practice.homework;
import java.util.Arrays;
import java.util.Scanner;
public class Homework02
{
public static void main(String[] args)
{
int num[] = new int[]{3,5,9,7,0};
Arrays.sort(num,1,4);//输出结果为:3 5 7 9 0
for(int i = 0; i < num.length ; i++)
System.out.print(num[i]+" ");
}
}
2、关于==for(int i : num)==用法
1)意思是先设置一个与 num数组 里的元素相同的变量
2)而这个变量先等于 num数组 的第一个元素
3)然后进入for循环
4)第二次循环就等于 num数组 的第二个元素
5)以此类推
如:
package Java.practice.homework;
import java.util.Arrays;
import java.util.Scanner;
public class Homework02
{
public static void main(String[] args)
{
int num[] = new int[]{3,5,9,7,0};
Arrays.sort(num,1,4);//输出结果为:3 5 7 9 0
for(int i :num)
System.out.print(i+" ");
}
}
而同时你也可以理解为:
for(int i :num)
System.out.print(i+" ");//输出i:因为i已经记录了num数组里的元素
与下面的代码相同
for(int i = 0; i < num.length ; i++)
System.out.print(num[i]+" ");//输出num[i]:通过遍历循环,在这里是输出num数组里的元素