问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
这个就是考察冒泡排序的,数值大大的沉在底,数值小的浮在上。
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] numArray = new int[n];
for (int i = 0; i < n; i++) {
numArray[i] = sc.nextInt();
}
for (int i = 0; i < n - 1; i++) {// 控制趟数注意n个数字只需要n-2趟
for (int j = 0; j < n - i - 1; j++) {
int tmp;
if (numArray[j] > numArray[j + 1]) {
tmp = numArray[j];// 先把大的数据赋给tmp
numArray[j] = numArray[j + 1];// 接着是两个数据进行交换
numArray[j + 1] = tmp;// 完成数据的交换
}
}
}
for (int i = 0; i < n; i++) {
System.out.print(numArray[i] + " ");//最后按格式输出即可
}
}
}
这里还有一个注意点就是两个数的交换,交换顺序一定不要错,我的记忆就是先从数值大的入手。其他的就按部就班的来就行。
奥利给!!!
|