荷尖角:快速排序

package D_common;

import java.util.Scanner;

public class 快速排序 {

    public static void main(String[] args) {
        // 10 5 8 6 4 2 1 3 10 7 9
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int arr[] = new int[n];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = scanner.nextInt();
        }

        quickSort(arr, 0, arr.length - 1);

        for (int i : arr) {
            System.out.print(i + " ");
        }

    }

    public static void quickSort(int[] arr, int start, int end) {
        if (start > end) {
            return;
        }

        int i = start;//指针值和属性值.
        int j = end;


        int temp = arr[start];

        while (i < j) {
            while (arr[j] >= temp && i < j) {
                j--;
            }
            while (arr[i] <= temp && i < j) {
                i++;
            }

            if (i < j) {
                int t = arr[j];
                arr[j] = arr[i];
                arr[i] = t;
            }
        }

        arr[start] = arr[i];
        arr[i] = temp;


        quickSort(arr, start, i - 1);
        quickSort(arr, i + 1, end);
    }
}

输入: 

10 
5 8 6 4 2 1 3 10 7 9

输出:

1 2 3 4 5 6 7 8 9 10  

猜你喜欢

转载自blog.csdn.net/SIHUAZERO/article/details/128048114