快速排序模版

void quick_sort(int a[], int low, int high) {
    int i = low, j = high;
    int t = a[i];
    if(low < high) {
        while(i < j) {
            while(t <= a[j] && i < j) {//从右往左搜寻第一个t>a[j],将a[j]赋值给a[i]
                j--;
            }
            a[i] = a[j];
            while(t >= a[i] && i < j) {
                i++;
            }
            a[j] = a[i];
        }
        a[i] = t;   //一次快排完后i==j;
        quick_sort(a, low, i - 1);
        quick_sort(a, i + 1, high);
    }
}

猜你喜欢

转载自blog.csdn.net/no_o_ac/article/details/81201275