很经典的算法,快速排序! #include<stdio.h> void quickSort(int *a,int low,int high); int main() { FILE *f_in,*f_out; int n; int i,j; int a[100]; f_in=fopen("test.txt","r"); f_out=fopen("out.txt","wr"); if(f_in==NULL||f_out==NULL) return -1; i=0; // fscanf(f_in,"%d",&n); // for(i=1;i<=n;i++) // fscanf(f_in,"%d",&a[i]); while(fscanf(f_in,"%d",&a[++i])!=EOF); n=i-1; quickSort(a,1,n); for(i=1;i<=n;i++) { fprintf(f_out,"%d ",a[i]); } fclose(f_in); fclose(f_out); getch(); return 0; } int part(int *a,int low,int high) { int key; int i,j; a[0]=a[low]; key=a[low]; i=low; j=high; while(i<j) { while(i<j&&a[j]>=key) j--; if(i<j) a[i++]=a[j]; while(i<j&&a[i]<=key) i++; if(i<j) a[j--]=a[i]; } a[i]=a[0]; return i; } void quickSort(int *a,int low,int high) { int middle; if(low<high) { middle=part(a,low,high); quickSort(a,low,middle-1); quickSort(a,middle+1,high); } }