快排的关键在于划分(partition操作),一次划分过程有很多实现的思路,请根据以下思路对a[1],a[2],...,a[n]实现一次partition并输出结果:
1.选择a[1]为pivot(轴)
2.从2和n两个位置开始,分别向中间方向查找,将遇到的第一个大于等于/小于等于轴的元素进行交换,直至a[2]至a[n]被划分为L和R两部分,L中的元素小于等于pivot,R中的元素大于等于pivot。
3.最后将a[1]交换至合适的位置。
两行,第一行为一个整数n,表示元素的个数。
第二行n个空格分隔的整数,表示数组的各个元素。
一行,n个整数,为划分后的整个数组。
8 4 8 3 7 1 2 6 5
1 2 3 4 7 8 6 5
对于50%的数据,2<=n<=5000。
对于100%的数据,2<=n<=60000,
所有a[i]在int范围内。
奇遇编程