/**
*quick sort
**/
#include<stdio.h>
void swap(int * a,int * b)
{
int tmp;
tmp = *a;
*a = * b;
*b = tmp;
}
void quickSort(int array[],int start,int end)
{
int i,j;
if(start < end)
{
i = start;
j = end + 1;
while(1)
{
do i++;
while(!(array[start] >= array[i] || start == i));
do j--;
while(!(array[start] <= array[j] || end == j));
if(i < j)
swap(&array[i],&array[j]);
else
break;
}
swap(&array[start],&array[j]);
quickSort(array,start,j - 1);
quickSort(array,j + 1,end);
}
}
int main()
{
int arr[10] = {2,5,6,3,7,8,0,9};
printf("\nbefore sorted:\n");
for(int i = 0;i != 10;i++)
printf("%d ",arr[i]);
quickSort(arr,0,9);
printf("\n after sorted:\n");
for(int j = 0;j != 10;j++)
printf("%d ",arr[j]);
return 0;
}