Test

private static void quick_sort(int[] q, int l, int r) {
    // l 和 r 是闭区间的边界
    if (l >= r) return; // 如果区间内只有一个或者没有数字,就返回
    int x = q[l + r >> 1]; // 分界点
    int i = l - 1, j = r + 1; // i j 取了区间的两端外,是为了配合下面的 do while
    while (i < j) {
        do i++; while (q[i] < x);
        do j--; while (q[j] > x);

        if (i < j) {
            int t = q[i];
            q[i] = q[j];
            q[j] = t;
        }
    }
    // 向左右子区间递归
    quick_sort(q, l, j);
    quick_sort(q, j + 1, r);
}
posted @ 2023-06-16 16:39  Changersh  阅读(17)  评论(0)    收藏  举报