今天无意中翻出了高中写过的一个C语言版的快速排序,现将代码贴在下面。
#include<stdio.h>
#include<stdlib.h>
int n;
quicksort(int *num,int head,int tail)
{ int key=0,t,i,j;
if(head<tail)
{ i=head;j=tail;
while(i<j)
{
while(i<j&&num[i]<num[j])j--;
if(i<j){t=num[i];num[i]=num[j];num[j]=t;i++;}
while(i<j&&num[i]<num[j])i++;
if(i<j){t=num[i];num[i]=num[j];num[j]=t;j--;}
}
key=i;
quicksort(num,head,key-1);
quicksort(num,key+1,tail);
}
}
main()
{
FILE *fp1,*fp2;
int num[100],i=0;
fp1=fopen("quicksort.in","r");
fscanf(fp1,"%d",&n);
for(i=0;i<n;i++)
fscanf(fp1,"%d",&num[i]);
quicksort(num,0,n-1);
for(i=0;i<n;i++)printf("%d\n",num[i]);
system("pause");
}