快排

#define SIZE 20

int partition(int l, int r, int data[SIZE])
{
    int v = data[r];
    int i = l - 1;
    int j = r;

    while(1){
        while(data[++i] < v);
        while(v < data[--j]) if(j == i) break;
        if(j <= i) break;
        int t = data[i]; data[i] = data[j]; data[j] = t;
    }
    int t = data[i]; data[i] = data[r]; data[r] = t;

    return i;
}

void quickSort(int l, int r, int data[SIZE])
{
    if (r <= l) {
        return;
    }

    int p = partition(0, r, data);
    quickSort(l, p - 1, data);
    quickSort(p + 1, r, data);
}

 

posted @ 2016-11-15 17:51  Pumpkin0227  阅读(149)  评论(0编辑  收藏  举报