快速排序的递归实现

/ 0评 / 0
void quicksort(int l, int r) {
    if (l >= r) {
        return;
    }
    auto i = l;
    auto j = r;
    auto top = list[i];
    while (i < j) {
        while (top <= list[j] && i < j) {
            --j;
        }
        list[i] = list[j];
        while (list[i] <= top && i < j) {
            ++i;
        }
        list[j] = list[i];
    }
    list[i] = top;
    quicksort(l, i - 1);
    quicksort(i + 1, r);
}