【算法基础】排序-快排

基本思想:

  1. 先从数列中取出一个数作为基准数。
  2. 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
  3. 再对左右区间重复第二步,直到各区间只有一个数

代码:

public static void quickSort(int arr[], int left, int right) {
        if (left > right) {
            return;
        }
        int i = left;
        int j = right;
        int base = arr[left];
        while (i < j){
            while (base <= arr[j] && i < j){
                j--;
            }
            while (base >= arr[i] && i < j){
                i++;
            }
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        arr[left] = arr[i];
        arr[i] = base;
        quickSort(arr,left,i-1);
        quickSort(arr,i+1,right);
    }

参考:

https://blog.csdn.net/MoreWindows/article/details/6684558

posted @ 2019-01-12 21:35  abs_征召不老  阅读(89)  评论(0)    收藏  举报