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

陣列氣泡排序

public class SecondDemo {
    
    //陣列氣泡排序,從小到大
    public static void bubuuMin(int[] arr) {
        for(int x=0;x<arr.length-1;x++) {
            //-x的目的是為了每次比較的元素減少
            //-1的目的是為了防止角標越界
            for(int y=0;y<arr.length-x-1;y++) {
                if(arr[y]>arr[y+1]) {
                    int temp = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = temp;
                }
            }
        }
    }
    
    //陣列氣泡排序,從大到小
    public static void bubbMax(int[] arr) {
        //外迴圈,表示迴圈次數
        for(int x=0;x<arr.length-1;x++) {
            //-x表示每一次比較的元素減少
            //-1是為了防止角標越界
            for(int y=0;y<arr.length-x-1;y++) {
                if(arr[y]<arr[y+1]) {
                    int temp = arr[y];
                    arr[y] = arr[y+1];
                    arr[y+1] = temp;
                }
            }
        }
    }
    
    //輸出陣列中的元素
    public static void printout(int[] arr) {
        System.out.print("[");
        for(int x=0;x<arr.length;x++) {
            if(x != arr.length-1) {
                System.out.print(arr[x]+",");
            }else {
                System.out.println(arr[x]+"]");
            }
        }
    }
    
    public static void main(String[] args) {
        int[] arr = {2,45,23,67,43,99,1};
        //進行氣泡排序,從小到大
        bubuuMin(arr);
        //輸出陣列元素
        printout(arr);
        //進行氣泡排序,從大到小
        bubbMax(arr);
        //輸出陣列元素
        printout(arr);
    }

}