1. 程式人生 > >Java—排序演算法彙總

Java—排序演算法彙總

1.氣泡排序

思路 : 從第一個數值開始,從左到右依次比較相鄰兩個數的大小,若左邊大於右邊,則換位置,直到最大的數值冒到最右邊。

             依次迴圈冒泡最大值到右邊,直到排序完畢。

程式碼 : 

     /** 氣泡排序 */
    private static void maopaoSort(int[] array) {
        for(int i=0; i < array.length-1; i++){
            for(int j = 0; j < array.length-1-i; j++){
                if(array[j] > array[j+1]) {

                     // 交換位置
                    changeIndex(array,j,j+1);
                }
            }
        }
    }

 

2. 選擇排序

思路 :每一趟比較出序列中的最小值,並將其放在排號序的序列之後,直到排序完畢。

程式碼 :

/** 選擇排序 */
    private static void xuanze(int[] array) {
        for(int i = 0; i<array.length-1; i++){
            int min = array[i];
            int minIndex = i;
            
            for(int j = i+1; j<array.length; j++){
                if(min > array[j]) {
                    min = array[j];
                    minIndex = j;
                }
            }
             // 交換位置
            changeIndex(array, i, minIndex);
        }
    }