快排求改进,不够快咋改啊


#include<stdio.h>
int a[105];
void swap(int *a, int *n, int *m)
{
    int temp = *m;
    *m = *n;
    *n = temp;
 } 
void c(int *a, int low, int high)
{
    if(low < high)
    {
        int i, j ,k;
        i = low;
        j = high;
        k = a[i];
        while(i < j)
        {
            while(i < j && a[j] >= k )
            {
                j--;
            }
            if(i < j)
            {
                a[i++] = a[j];
            }
            while(i < j && a[i] < k)
            {
                i++;
            }
            if(i<j)
            {
                a[j--] = a[i];
            }
      } 
         a[i] = k;
         c(a, 0, i-1);
         c(a, i+1, high); 
    }
}
int main()
{
    int n, i ;

    scanf("%d", &n);
    for(int i = 0; i < n; i++ )
    {
        scanf("%d", &a[i]);
    }
    int mid = n/2; 
    swap(a, &a[0], &a[mid]);
    c(a, 0, n-1);
    for(int i = 0; i < n; i++)
    {

        printf(i?" %d":"%d", a[i]);
    }
    return 0;
}

看看和这里的排序代码有啥差别吧