#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int kuaipai(int *n,int low,int high)
{
int key;
n[0]=n[low];
key=n[low];
while(low<high)
{
while(low<high&&n[high]>=key)
{
--high;
}
n[low]=n[high];
while(low<high&&n[low]<=key)
{
++low;
}
n[high]=n[low];
}
n[low]=n[0];
return low;
}
void q(int *n,int low,int high)
{
int p;
if(low<high)
{
p=kuaipai(n,low,high);
q(n,low,p-1);
q(n,p+1,high);
}
}
void quick(int *n,int length)
{
q(n,1,length);
}
int main()
{
clock_t start, finish;
double time;
int n[1000001];
FILE *fp=fopen("numbers-1000000.txt","r");
for(int i=1;!feof(fp);i++)
{
fscanf(fp,"%d",&n[i]);
}
fclose(fp);
start=clock();
quick(n,1000000);
finish=clock();
time=(double)(finish - start) / CLOCKS_PER_SEC;
//for(int i=1;i<=10;i++)
//{
//printf("%d ",n[i]);
//}
printf("%f seconds",time);
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交