#include <stdio.h>
#include <stdlib.h>
void quicksort(int a[],int left,int right)
{
int i,j,t,temp;
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(a,left,i-1);
quicksort(a,i+1,right);
return;
}
int main(int argc, char *argv[])
{
int a[13]= {2,4,70,97,127,304,67,77,81,83,99,10,209};
int b[6]= {1,2,5,7,9,11};
int c[19];
int i;
quicksort(a,0,12);
for(i=0; i<13; i++)
{
printf("%d ",a[i]);
}
printf("\n");
system("PAUSE");
return 0;
}
2、快速排序 Partition函数的两种实现方式
http://blog.csdn.net/rabbitguiming/article/details/4851150
http://www.cnblogs.com/RootJie/archive/2012/02/13/2349649.html
http://blog.csdn.net/morewindows/article/details/6684558