快速排序
1.确定一个分界数。
2.确定一个分解点使得所有左边的数都小于x,右边的数都大于等于x。
3.递归处理整个数组。
/*
include[HTML_REMOVED]
const int N=1e6+10;
int a[N];
void quick_sort(int a[],int l,int r)
{
if(l>=r) return 0;
int x=a[(l+r)/2],i=l-1,j=r+1;
while(i<j)
{
do i++; while(a[i]<x);
do j--; while(a[j]>x);
if(i<j)
{
int t=a[i];
a[i]=a[j];
a[j]=t;
}
}
quick_sort(a,l,j);
quick_sort(a,j+1,r);
}
int main()
{
int n;
scanf(“%d”,&n);
for(int i=0; i<n; i++) scanf("%d",&a[i]);
quick_sort(a,0,n-1);
for(int i=0; i<n; i++) printf("%d ",a[i]);
return 0;
}