1 //题意要求:使用选择法、冒泡法将数组按从小到大的顺序排列
2 public class HelloWorld {
3 public static void main(String[] args) {
4 //选择法排序的思路:
5 //把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来
6 //比较完后,第一位就是最小的
7 //然后再从第二位和剩余的其他所有进行比较,只要比第二位小,就换到第二个位置来
8 //比较完后,第二位就是第二小的
9 //以此类推,归纳总结形成for嵌套
10 System.out.println("由小到大排序选择法一:数组a");
11 int a [] = new int[]{18,62,68,82,65,9};
12 for (int i = 0; i < a.length - 1; i++) { //一共比较了(a.length-1)次
13 for (int j = i + 1; j < a.length; j++) {
14 if(a[j] < a[i]){
15 int miccle = a[i];
16 a[i] = a[j];
17 a[j] = miccle;
18 }
19 }
20 }
21 for (int i = 0; i < a.length; i++) {//输出用选择法排序的结果
22 System.out.print(a[i] + " ");
23 }
24 System.out.println();
25 // 冒泡法排序的思路:
26 // 第一步:从第一位开始,把相邻两位进行比较
27 // 如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的
28 // 第二步: 再来一次,只不过不用比较最后一位
29 // 以此类推,归纳规律如下
30 System.out.println("用冒泡法从大到小排序");
31 int c [] = new int[]{18,62,68,82,65,9};
32 for (int i = 0; i < c.length - 1; i++) {//长度为c.length的数组需要循环(c.length - 1)轮
33 for (int j = 0; j < c.length - 1 - i ; j++) {
34 if(c[j] < c[j + 1]){
35 int mic = c[j];
36 c[j] = c[j + 1];
37 c[j + 1] = mic;
38 }
39 }
40 }
41 for (int k = 0; k < c.length; k++) {//输出冒泡法排序后的结果
42 System.out.print(c[k] + " ");
43 }
44 }
45 }
详细规律请参考链接: 选择法排序 和 冒泡法排序