解题思路:
注意事项:
参考代码:
#include <stdio.h>
int a[100005],n;
void gg(int l,int r)
{
int mid=a[(l+r)/2];
int i=l,j=r;
while(i<=j)
{
while(a[i]<mid)
i++;
while(a[j]>mid)
j--;
if(i<=j)
{
int t=a[i];
a[i]=a[j];
a[j]=t;
i++;
j--;
}
}
if(l<j) gg(l,j);
if(i<r) gg(i,r);
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
gg(1,n);
for(int i=1;i<=n;i++)
printf("%d ",a[i]);
return 0;
}
0.0分
3 人评分