快速排序算法源码
void qsort(int a[],int begin,int end)
{
int x = a[(begin+end)/2]; //取一个中间值x
int i = begin; //拿到最左边的值
int j = end; //拿到最右边的值
while (i<j) //没换完
{
while ( x> a[i] ) ++i; //左边找个比x大于等于的
while ( x< a[j] ) --j; //右边找个比x小于等于的
if (i<=j) //没过头就交换
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
++i; //交换完了就推一位
--j;
}
}
if(i<end) //右边
{
qsort(a,i,end);
}
if(begin < j) //左边
{
qsort(a,begin,j);
}
}