数据结构与算法专题题库

1016. 快速排序

单点时限: 2.0 sec

内存限制: 512 MB

实现一个快速排序算法并输出中间过程。

输出中间过程的伪代码可以写成

void quicksort(vector <int> &v,int p,int r)
{
    if (p<r)
    {
        int q=partition(v,p,r);
        for (int i=0;i<v.size();i++)
            cout<<v[i]<<' ';
        cout<<endl;
        quicksort(v,p,q-1);
        quicksort(v,q+1,r);
    }
}

所以你只需要实现partition函数和数据读写就可以了!

输入格式

一个行一个整数$n$,接下来一行$n$个数。

输出格式

排序的中间过程,每行$n$个数,总共若干行。

样例

Input
6
4 2 1 3 5 6
Output
4 2 1 3 5 6
4 2 1 3 5 6
2 1 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6

提示

请严格按照PPT上的算法描述完成!!!(PPT第61页)
在程序最后请输出一遍排好序的数组!!!

不限期开放

题目列表