#include <stdio.h>
void display(int *a, int len)
{
int i;
for(i = 0;i < len; i++)
{
printf("%d\n", a[i]);
}
}
void swap(int a[],int i ,int j)
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
void quicksort(int *a, int left, int right)
{
int i,j;
int tmp;
if(left > right)
return;
i = left;
j = right;
tmp = a[left];
while(i < j)
{
while(a[j] >= tmp && i < j)
{ //先找右边
j--;
}
while(a[i] <= tmp && i < j)
{ //再找左边
i++;
}
if(i < j)
{
swap(a , i, j); //交换值
}
}
swap(a, left, i); //改变基准值的位置
quicksort(a, left, j-1);
quicksort(a, j+1, right);
}
int main()
{
int a[] = {2,3,4,9,6,5,7,1,0,8};
int len = sizeof(a)/sizeof(a[0]);
quicksort(a, 0, len-1);
display(a, len);
return 0;
}