第一次刷题,希望每周至少刷3道题,从基础的开始。
像大佬们学习。
试题 基础练习 数列排序
问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9
解答代码1
使用了Arrays.soft()自带的排序算法
import java.util.Arrays; import java.util.Scanner; public class Main { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { int n = sc.nextInt();//一个整数n int nArr[] = new int[n];//存储n个整数的数组 for (int i = 0; i < nArr.length; i++) { nArr[i] = sc.nextInt(); } Arrays.sort(nArr);//排序 //打印 for (int i = 0; i < nArr.length; i++) { System.out.print(nArr[i]+ " "); } } }
解答代码2
使用插入排序
import java.util.Arrays; import java.util.Scanner; public class Main { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { int n = sc.nextInt();//一个整数n int nArr[] = new int[n];//存储n个整数的数组 for (int i = 0; i < nArr.length; i++) { nArr[i] = sc.nextInt(); } nArr = insertionSoft(nArr);//排序 for (int i = 0; i < nArr.length; i++) { System.out.print(nArr[i]+ " "); } } //插入排序 static public int[] insertionSoft(int[] A){ for (int j = 1; j < A.length; j++) { int key = A[j]; int i = j - 1; while ((i>=0) && (A[i] > key)) { A[ i + 1 ] = A[i]; i = i - 1; } A[i + 1] = key; } return A; } }