试题 基础练习 数列排序
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9
方法一:利用java中自身的方法
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int nums[]=new int[n];
for(int x=0;x<n;x++)
nums[x]=sc.nextInt();
Arrays.sort(nums);
for(int x:nums)
System.out.print(x+" ");
}
}
方法二:
可以利用排序算法中的
冒泡排序
选择排序
插入排序
希尔排序
快速排序
归并排序
堆排序
基数排序中的方法进行排序
例子:选择排序
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int nums[]=new int[n];
for(int x=0;x<n;x++)
nums[x]=sc.nextInt();
for(int x=0;x<n;x++) {
int minIndex=x;
for(int y=x+1;y<n;y++) {
if(nums[y]<nums[minIndex])
minIndex=y;
}
if(minIndex!=x) {
int temp=nums[x];
nums[x]=nums[minIndex];
nums[minIndex]=temp;
}
}
for(int x:nums)
System.out.print(x+" ");
}
}