快速排序

来源:互联网 发布:.edu域名注册 编辑:程序博客网 时间:2024/04/29 12:56

快速排序

算法思想:找一个基准(一个数),i从左开始i++,j从右开始j--,找到直到i对应的值大于基准,j对应的值小于基准,交换两数,终止条件是i>=j,达到终止条件的i值对应的数组位置就是基准的位置

核心代码:
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;    }


0 1
原创粉丝点击