int QuickSort(int * a, int num)
{
int i,j;
int middle;
int k;
if ( num<=0 ) return 0;
middle = a[(num-1)/2];
i = 0;
j = num-1;
do{
while ( a[i]<middle ) i++;
while ( middle<a[j] ) j--;
if ( i <= j )
{
k = a[i]; a[i] = a[j]; a[j] = k;
i++;
j--;
}
}while( i <= j );
if (0 < j) QuickSort(a, j+1);
if (i < num-1) QuickSort(a+i, num-i);
return 0;
}
{
int i,j;
int middle;
int k;
if ( num<=0 ) return 0;
middle = a[(num-1)/2];
i = 0;
j = num-1;
do{
while ( a[i]<middle ) i++;
while ( middle<a[j] ) j--;
if ( i <= j )
{
k = a[i]; a[i] = a[j]; a[j] = k;
i++;
j--;
}
}while( i <= j );
if (0 < j) QuickSort(a, j+1);
if (i < num-1) QuickSort(a+i, num-i);
return 0;
}