如何用java程式碼實現選擇排序和氣泡排序

來源:酷知科普網 5.56K

氣泡排序和選擇排序是排序演算法中比較簡單和容易實現的演算法。氣泡排序的思想為:每一次排序過程,通過相鄰元素的交換,將當前沒有排好序中的最大(小)移到
陣列的最右(左)端。而選擇排序的思想也很直觀:每一次排序過程,我們獲取當前沒有排好序中的最大(小)的元素和陣列最右(左)端的元素交換,迴圈這個過
程即可實現對整個陣列排序。  選擇排序的平均時間複雜度比氣泡排序稍高

操作方法

(01)開啟myeclipse工具,新建一個工程,並新建一個包,在該包下新建一個類。注意類名首字母必須大寫,這是java程式碼的命名規範。

如何用java程式碼實現選擇排序和氣泡排序

(02)在該Demo1類下,寫一個靜態的select()方法。用來寫選擇排序的方法。引數為 需要排序的整數陣列。程式碼:public static void select(int[] arr) {        for (int x = 0; x < th; x++) {            for (int y = x + 1; y < th; y++) {                if (arr[x] > arr[y]) {                    int temp = arr[x];                    arr[x] = arr[y];                    arr[y] = temp;                }            }        }        tln("排序過後的數:");        for (int i = 0; i < th; i++) {            tln(arr[i]);        }    }

如何用java程式碼實現選擇排序和氣泡排序 第2張

(03)在該Demo1類下,寫一個靜態的maopao()方法。用來寫氣泡排序的方法。引數為 需要排序的整數陣列。程式碼:    public static void maopao(int[] arr) {        for (int x = 0; x < th; x++) {            for (int y = 0; y < th - x - 1; y++) {                if (arr[y] > arr[y + 1]) {                    int temp = arr[y];                    arr[y] = arr[y + 1];                    arr[y + 1] = temp;                }            }        }        tln("排序過後的數:");        for (int i = 0; i < th; i++) {            tln(arr[i]);        }    }

如何用java程式碼實現選擇排序和氣泡排序 第3張

(04)在主函式中呼叫maopao()方法。右鍵並點選 run as ,觀察控制檯上輸出的結果,從小到大排序。

如何用java程式碼實現選擇排序和氣泡排序 第4張

(05)在主函式中呼叫select()方法。右鍵並點選 run as ,觀察控制檯上輸出的結果,從小到大排序。

如何用java程式碼實現選擇排序和氣泡排序 第5張

(06)選擇排序和氣泡排序的區別在於演算法的實現不同,具體圖解見下圖。

如何用java程式碼實現選擇排序和氣泡排序 第6張
如何用java程式碼實現選擇排序和氣泡排序 第7張

特別提示

注意 :選擇排序和氣泡排序的區別,詳見圖中紅色框標記中的內容。

熱門標籤