快速排序
#include<stdio.h>
#define N 20
void quicksort(int left,int right,int a[])
{
int i,j,temp,t;
if(left>right)
return;
temp=a[left];
i=left;
j=right;
while(i!=j)
{
while(a[j]>=temp && i<j)
j--;
while(a[i]<=temp && i<j)
i++;
if(i<j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
a[left]=a[i];
a[i]=temp;
quicksort(left,i-1,a);
quicksort(i+1,right,a);
}
int main()
{
int a[20];
int cnt;
for(cnt = 0 ; cnt < N ; cnt ++)
{
a[cnt]=rand()%100;
}
printf("before: \n");
for(cnt = 0 ; cnt < N ; cnt ++)
{
printf("%3d ", a[cnt]);
}
printf("\n");
quicksort(0,N-1,a);
printf("after: \n");
for(cnt = 0 ; cnt < N ; cnt ++)
{
printf("%3d ", a[cnt]);
}
}