排序 (2)快速排序-双路排序

1. 双路排序

partition有两种思路,一种是从某侧循环,还有一种是双路排序(从两端往中间逼近)

在这里插入图片描述

 //从两侧向中间逼近
int Paritition(int A[], int low, int high) {
    
    
    int pivot = A[low];
    while (low < high) {
    
    
        while (low < high && A[high] >= pivot) {
    
    
            --high;
        }
        A[low] = A[high];
        while (low < high && A[low] <= pivot) {
    
    
            ++low;
        }
        A[high] = A[low];
    }
    A[low] = pivot;
    return low;
}

【引用】

[1] 代码quickSort.h

猜你喜欢

转载自blog.csdn.net/thefist11cc/article/details/123587647