第一次刷题,希望每周至少刷3道题,从基础的开始。 像大佬们学习。
试题 基础练习 数列排序
问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5 8 3 6 4 9
样例输出
3 4 6 8 9
解答代码1
代码语言:javascript复制使用了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
代码语言:javascript复制使用插入排序
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;
}
}