java排序演算法—快速排序
阿新 • • 發佈:2018-11-02
快速排序
快速排序的思想方法:
1.先從數列中取出一個數作為基準數,記為x。
2.分割槽過程,將不小於x的數全放到它的右邊,不大於x的數全放到它的左邊。(這樣key的位置左邊的沒有大於key的,右邊的沒有小於key的,只需對左右區間排序即可)。
3.再對左右區間重複第二步,直到各區間只有一個數。
程式碼實現
public class SelectionSort { 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 + " "); } // int[] arr = { 5, 7, 3, 1, 6, 8, 9, 2 }; int min; //選擇排序程式碼段 for (int i = 0; i < arr.length - 1; i++) { min = i;// 預設最小為第一個 for (int j = i + 1; j < arr.length; j++) { if (arr[j] < arr[min]) { min = j; } } int temp = arr[i]; arr[i] = arr[min]; arr[min] = temp; } System.out.print("選擇排序結果為:"); for (int num2 : arr) { System.out.print(num2 + " "); } } }