如何用java程式碼實現選擇排序和氣泡排序
氣泡排序和選擇排序是排序演算法中比較簡單和容易實現的演算法。氣泡排序的思想為:每一次排序過程,通過相鄰元素的交換,將當前沒有排好序中的最大(小)移到
陣列的最右(左)端。而選擇排序的思想也很直觀:每一次排序過程,我們獲取當前沒有排好序中的最大(小)的元素和陣列最右(左)端的元素交換,迴圈這個過
程即可實現對整個陣列排序。 選擇排序的平均時間複雜度比氣泡排序稍高
操作方法
(01)開啟myeclipse工具,新建一個工程,並新建一個包,在該包下新建一個類。注意類名首字母必須大寫,這是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]); } }
(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]); } }
(04)在主函式中呼叫maopao()方法。右鍵並點選 run as ,觀察控制檯上輸出的結果,從小到大排序。
(05)在主函式中呼叫select()方法。右鍵並點選 run as ,觀察控制檯上輸出的結果,從小到大排序。
(06)選擇排序和氣泡排序的區別在於演算法的實現不同,具體圖解見下圖。
特別提示
注意 :選擇排序和氣泡排序的區別,詳見圖中紅色框標記中的內容。