快速排序
一. 算法模板
基于分治做排序
void quick_sort(int ary[], int l, int r) {
    if (l >= r) return;
    int i = l - 1, j = r + 1, x = ary[l + r >> 1];
    while(i < j) {
        do i++; while(ary[i] < x);
        do j--; while(ary[j] > x);
        if (i < j) swap(ary[i], ary[j]);
    }
    quick_sort(ary, l, j);
    quick_sort(ary, j + 1, r);
}