数列排序
蓝桥杯基础练习
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述:
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式:
第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式:
输出一行,按从小到大的顺序输出排序后的数列
下面是我自己写的,有可能不正确
import java.util.Random;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n<=0||n>200) {
System.out.print(0);
}else {
Random r =new Random();
int[] arr = new int[n];
for(int i = 0;i<arr.length;i++) {
int flag = r.nextInt();
int a = (int) (flag > 0.5 ? r.nextFloat() * 10000 : r.nextFloat() * (-10000));
arr[i] = a;
}
for(int i = 0;i<arr.length-1;i++) {
for(int j = 0;j<arr.length-1-i;j++) {
if(arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int i = 0;i<n;i++) {
System.out.print(arr[i]+"\t");
}
}
}
}
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;
n = sc.nextInt();
int f[] = new int[n];
for(int i = 0;i<n;i++)
{
f[i] = sc.nextInt();
}
Arrays.sort(f); // Arrays.sort(f,1,4); //排序子数组
for(int j = 0;j<n;j++)
{
System.out.print(f[j]+" ");
}
}