王道上的快速排序算法代码

void QuickSort(int R[], int low, int high) {
        int i, j, temp;
        i = low;
        j = high;
        temp = R[low];//轴枢
        while (i < j) {
            while (j > i && R[j] >= temp) {//首先从右往左找到小于轴枢的值
                --j;
            }
            if (i < j) {
                R[i] = R[j];//找到小于轴枢的值后,交换到序列前端i的位置
                        //从左往右扫描找到大于轴枢的值
                ++i;
            }

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


        }
        R[i] = temp;
        QuickSort(R, low, i - 1);
        QuickSort(R, i+1, high);
    }

你可能感兴趣的:(王道上的快速排序算法代码)