#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); } } int main(int argc, char* argv[]) { const int index=8; int ar[index]={5,6,8,7,9,2,4,66}; qsort(ar,0,index-1); for (int i=0;i<index;i++) { printf("%d\n",ar[i]); } return 0; }