1. 程式人生 > >個人對於氣泡排序和選擇排序的理解

個人對於氣泡排序和選擇排序的理解

1.氣泡排序:它的實現原理節省了時間,

實現原理:一組數兩兩進行比較,然後把最大數放在後邊,這樣每次迴圈結束都會少一次比較,

/*
 * 氣泡排序
 */
public class C {
    public static void main(String[] args) {
    int[] arr = { 6, 3, 8, 2, 9, 1 };
    for (int i = 0; i < arr.length - 1; i++) {// 外層迴圈控制排序趟數
        for (int j = 0; j < arr.length - 1 - i; j++) {// 內層迴圈控制每一趟排序多少次
            System.out.println(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<arr.length;i++) {
        System.out.println(arr[i]+"");
    }
    }
}

n個數的話會進行(n-1)次的排序,每個數要跟其它數比較(n-1)次。

2.選擇排序:

實現原理:把最小的數找出來,

public class B {
    public static void main(String[] args) {
        int [] a= {1,6,23,9,14,56};
        select(a);
        print(a);
    }
    private static void print(int[] a) {
        for(int i=0;i<a.length;i++) {
            System.out.println(a[i]+"");
        }
        System.out.println();
    }
    private static void select(int[] a) {
        for(int i=0;i<a.length;i++) {
            for(int j=i+1;j<a.length;j++) {
                System.out.println(i+"---"+j);
                 if(a[j]<a[i]) {
                     int temp=a[i];
                    a[i]=a[j];
                    a[j]=temp;
                }
            }
        }
}

}

它的比較方式是第一個數與第二個數進行比較,比它小就把它放前邊再拿放到前邊的數與後邊的數進行比較,比較一輪後,下一個數也是這樣比較。