1. 程式人生 > >java排序演算法—快速排序

java排序演算法—快速排序

快速排序
快速排序的思想方法:
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 + " ");
		}
	}
}