1 #include <stdio.h>
2 #include <time.h>
3 const int MAX=20;
4 void QuickSort(int a[],int low,int high)
5 {
6 if(low>=high)
7 return ;
8 int first=low,last=high;
9 int key=a[low];
10 while(first<last)
11 {
12 while(first<last && a[last]>=key)
13 --last;
14 a[first]=a[last];
15 while(first<last && a[first]<=key)
16 ++first;
17 a[last]=a[first];
18 }
19 a[first]=key;//找准轴值所在位置
20 QuickSort(a,low,first-1);
21 QuickSort(a,first+1,high);
22 }
23 extern void test2()
24 {
25 int length,i;
26 int num[MAX];
27 clock_t start,end;
28 printf("请输入待排序的数组长度(按ctrl+z结束)\n");
29 while(scanf("%d",&length)!=EOF)
30 {
31 printf("请依次输入数组元素\n");
32 for(i=0;i<length;i++)
33 scanf("%d",num+i);
34 start=clock();
35 QuickSort(num,0,length-1);
36 end=clock();
37 printf("\n-------------------------------------------\n");
38 printf("快速排序(用时%f)后输出元素序列\n",(double)(end-start)/CLOCKS_PER_SEC);
39 for(int i=0;i<length;i++)
40 printf("%d\t",num[i]);
41 printf("\n");
42 for(i=0;i<length;i++)//清零
43 num[i]=0;
44 printf("请输入待排序的数组长度(按ctrl+z结束)\n");
45 }
46 }