Java Web--快速排序

/**
 * 快速排序
 * @author jyyrlei
 *
 */
public class QuickSort {

    static void quicksort(int n[], int left, int right) {
        int dp;
        if (left < right) {
            dp = partition(n, left, right);
            quicksort(n, left, dp - 1);
            quicksort(n, dp + 1, right);
        }
    }

    static int partition(int n[], int left, int right) {
        int pivot = n[left];
        while (left < right) {
            while (left < right && n[right] >= pivot)
                right--;
            if (left < right)
                n[left++] = n[right];
            while (left < right && n[left] <= pivot)
                left++;
            if (left < right)
                n[right--] = n[left];
        }
        n[left] = pivot;
        return left;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[] = { 1, 5, 1, 45, 15, 6, 55, 10, 21, 31, 0 };
        quicksort(a, 0, a.length - 1);
        for (int j = 0; j < a.length; j++) {
            System.out.print(a[j] + " ");
        }
    }

}


你可能感兴趣的:(Java Web--快速排序)