快排
代码先放在这 下次看了再该
#include<iostream>
#include<algorithm>
using namespace std;
void q_sort(inta[],int num)
{
int i=0,j=num-1;
inttem=a[0];
if(num>1)
{
while(i<j)
{
while(i<j&&a[j]>tem)
j--;
if(i<j)
a[i]=a[j];
while(i<j&&a[i]<tem)
i++;
if(i<j)
a[j]=a[i];
a[i]=tem;
}
q_sort(a,i);
q_sort(a+1+i,num-1-i);
}
}
int main()
{
inti,a[1000],n;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
q_sort(a,n);
for(i=0;i<n;i++)
cout<<a[i]<<"";
return0;
}
#include<cstdio>
using namespace std;
inta[100001],z,x,n,m;
void pai(int l,intr)
{
int i,j,mid,p;
i=l;j=r;
mid=a[(l+r)/2];
do
{
while (a[i]<mid)
i++;
while (a[j]>mid)
j--;
if (i<=j) {
p=a[i];a[i]=a[j];a[j]=p;
i++;j--;
}
} while(i<=j);
if (i<r) pai(i,r);
if (l<j) pai(l,j);
}
int main()
{
scanf("%d",&z);
for (int i=1;i<=z;i++)
scanf("%d",&a[i]);
pai(1,z);
for (int i=1;i<=z;i++)
printf("%d ",a[i]);
return 0;
}