/快速排序:每次选择一个基点,进行排序,基点左边都小于它,右边都大于它
传入数组,左边界,右边界/
#include <stdio.h>
void quick_sort(int a[],int Left,int Right)
{
int L=Left,R=Right;
int tag=a[L];
if(L>=R) return;
else
{
while(L<R)
{
while(a[R]>=tag && L<R) R--;
if(L<R)
{
a[L++]=a[R];
}
while(a[L]<=tag && L<R) L++;
if(L<R)
{
a[R--]=a[L];
}
}
a[L]=tag;
}
quick_sort(a,Left,L-1);
quick_sort(a,L+1,Right);
}
int main()
{
int a[]={42232,3,11,231,4354,657,78,34,5,7,5,3,2};
int i,n=13;
quick_sort(a,0,n-1);
for(i=0;i<n;++i)printf("%d ",a[i]);
}