java快速排序 (图解 + 大白话理论 + 简单代码)

快速排序图解链接(推荐先看这个!!)

基本思想:

快速排序简单的说就是选择一个基准元素,将比他小的数放在一边,比他大的还有他相等的数放到另一边,此时基准元素在其排好序后的正确位置。再对这个数的两边再递归上述方法。

public class QuickSort {

    private int partition(int[] a, int low,int high){
        int pivot = a[low];

        while(low=pivot) high--;
            a[low] = a[high];

            //再从前开始比较,当然第一个a[low]是刚移过来的,low++,直到遇到比pivot小的数,将其替换到high位置的值
            while(lowhigh时,结束
        a[low] = pivot;
        return low;
    }

    public void quickSort(int[] data,int low,int high){
        if(low

Output:
0 1 2 3 5 7 9 10

你可能感兴趣的:(javaSE)