这是快速排序法,本人小白,只能教一些比我小白的小白,大神看了请一笑了之。
我在main函数里面添加了计算时间的代码,大家可以验证一下所需要的时间,
另外,时间代码其实相对于实际来说非常有用,比如你可以用时间代码给自己写一个行程计划。 这回帖换行有问题···不知道咋搞
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define true 1
#define max 20
void swap(int *a,int *b){int c;c=*a; *a=*b; *b=c;}
int partition_sort(int a[],int p,int r);
void quick_sort(int a[],int p,int r)
{if(p<r) { int q;q=partition_sort(a,p,r);quick_sort(a,p,q-1);quick_sort(a,q+1,r);}}
int partition_sort(int a[],int p,int r){int i=p,j=r+1;int x=a[p];while(true){while(a[++i]<x&&i<j);while(a[--j]>x);if(i>=j)break;swap(&a[i],&a[j]);}a[p]=a[j];a[j]=x;return j;}
main(){clock_t start,finish;double totaltime;start=clock();
int a[max];int i,p=0,r=max-1;srand(time(NULL));for(i=0;i<max;i++)a[i]=rand()%100;quick_sort(a,p,r);for(i=0;i<max;i++)printf("%d\t",a[i]);printf("\n");
finish=clock();totaltime=(double)(finish-start)/CLOCKS_PER_SEC; printf("%lf",totaltime);}