快速排序
冒泡排序的思想方法:
1.從無序序列頭部開始,進行兩兩比較,根據大小交換位置,直到最後將最大(小)的數據元素交換到了無序隊列的隊尾,從而成爲有序序列的一部分;
2.下一次繼續這個過程,直到所有數據元素都排好序。算法的核心在於每次通過兩兩比較交換位置,選出剩餘無序序列裏最大(小)的數據元素放到隊尾。
由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上升,所以稱作冒泡排序。
代碼實現
public class BubbleSort { public static void main(String[] args) { Scanner read = new Scanner(System.in);// 創建Scanner對象read 接受從控制檯輸入 int n;// 元素個數 System.out.println("請輸入元素個數:"); n = read.nextInt(); int arr[] = new int[n]; int k, z; for (k = 0; k < n; k++) { arr[k] = read.nextInt(); //接受控制檯輸入的數據 } //int[] arr = { 5, 7, 3, 1, 6, 8, 9, 2 }; System.out.print("排序前的數組爲:"); for (int num : arr) { //顯示排序前數組 System.out.print(num + " "); } System.out.println(" "); for (int i = 0; i < arr.length - 1; i++) { // System.out.println("---------"); //排序代碼段 for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { System.out.println(arr[j]+"與"+arr[j+1]+"交換"); //輸出交換過程 int a = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = a; } } } System.out.println(""); System.out.print("冒泡排序後的數組爲:"); //顯示結果 for (int num2 : arr) { System.out.print(num2 + " "); } } }
測試結果: