tcitry
8/31/2014 - 3:19 AM

快速排序

快速排序

#include <stdio.h>
void qsort(int s[], int l, int r)
{
    int i, j, x;
    if (l < r)
    {
        i = l;
        j = r;
        x = s[i];
	
        while (i < j)
        {
            while(i < j && s[j] > x) j--; /* 从右向左找第一个小于x的数 */
            if(i < j) s[i++] = s[j];
            while(i< j && s[i] < x) i++; /* 从左向右找第一个大于x的数 */
            if(i < j) s[j--] = s[i];
        }
        s[i] = x;
        qsort(s, l, i-1); /* 递归调用 */
        qsort(s, i+1, r);
        qsort(s, i+1, r);
    }
    
  or (int a=0; a<10 ; a++) {
      rintf("%d ",s[a]);
    }
    printf("\n");
    
}
int(){
    int s[]={72,6,57,88,60,42,83,73,48,85};
    for (int a=0 ; a<10 ; a++) {
        printf("%d ",s[a]);
    }
    printf("\n");
    printf("开始排序:\n");
    qsort(s,0,9);
    return 0;
}