给定N(N≤10^5)个整数,要求用快速排序对数据进行升序排列,注意不得使用STL。
Input连续输入多组数据,每组输入数据第一行给出正整数N(≤10^5),随后给出N个整数,数字间以空格分隔。
Output输出排序后的结果,数字间以一个空格间隔,行末不得有多余空格。
ExampleInputExampleOutput97
HintAuthor
PS:
#includestdio.h
inta[];
intpaixu(intL,intR)
{
if(L=R)
{
turn0;
}
inti=L,j=R;
intflag=a[L];
while(ij)
{
while(ijflag=a[j])
{
j--;
}
a[i]=a[j];
while(ijflag=a[i])
{
i++;
}
a[j]=a[i];
}
a[i]=flag;
paixu(L,i-1);
paixu(i+1,R);
}
intmain()
{
intn,i,j;
while(scanf("%d",n)!=EOF)
{
for(i=0;in;i++)
{
scanf("%d",a[i]);
}
paixu(0,n-1);
for(j=0;jn;j++)
{
if(n-1!=j)printf("%d",a[j]);
elseprintf("%d\n",a[j]);
}
}
}
赞赏
北京中科医院是骗子补骨脂酊