1. 程式人生 > >java陣列氣泡排序

java陣列氣泡排序

public class BubbleSort {
/**
 * N個數字要排序完成,總共進行N-1趟排序,每i趟的排序次數為(N-i)次,所以可以用雙重迴圈語句,外層控制迴圈多少趟,內層控制每一趟的迴圈次數。
 * @param args
 */
    public static void main(String[] args) {
        int arr[] = {26,15,29,66,99,88,36,77,111,1,6,8,8};
        for(int i=0;i < arr.length-1;i++) {//外層迴圈控制排序趟數
            for(int j=0; j< arr.length-i-1;j++) {
                        //內層迴圈控制每一趟排序多少次
                // 把小的值交換到前面
                if (arr[j]>arr[j+1]) {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
            System.out.print("第"+(i+1)+"次排序結果:");
                                //列舉每次排序的資料
            for(int a=0;a<arr.length;a++) {
                System.out.print(arr[a] + "\t");
            }
            System.out.println("");
        }
        System.out.println("最終排序結果:");
        for(int a = 0; a < arr.length;a++) {
            System.out.println(arr[a] + "\t");
        }
    }
}

輸出結果:

第1次排序結果:15	26	29	66	88	36	77	99	1	6	8	8	111	
第2次排序結果:15	26	29	66	36	77	88	1	6	8	8	99	111	
第3次排序結果:15	26	29	36	66	77	1	6	8	8	88	99	111	
第4次排序結果:15	26	29	36	66	1	6	8	8	77	88	99	111	
第5次排序結果:15	26	29	36	1	6	8	8	66	77	88	99	111	
第6次排序結果:15	26	29	1	6	8	8	36	66	77	88	99	111	
第7次排序結果:15	26	1	6	8	8	29	36	66	77	88	99	111	
第8次排序結果:15	1	6	8	8	26	29	36	66	77	88	99	111	
第9次排序結果:1	6	8	8	15	26	29	36	66	77	88	99	111	
第10次排序結果:1	6	8	8	15	26	29	36	66	77	88	99	111	
第11次排序結果:1	6	8	8	15	26	29	36	66	77	88	99	111	
第12次排序結果:1	6	8	8	15	26	29	36	66	77	88	99	111	
最終排序結果:
1	
6	
8	
8	
15	
26	
29	
36	
66	
77	
88	
99	
111