快速排序
#include<stdio.h>
#include<time.h>
#include <iostream>
#define SWAP(x,y) ((x)=(x)^(y),(y)=(x)^(y),(x)=(x)^(y))
//快速排序
int partions(int a[],int left,int right)
{
int key=a[left];
while(left<right)
{
while(left<right&&a[left]<key)
++left;
while(left<right&&a[right]>key)
--right;
SWAP(a[left],a[right]);
}
a[left]=key;
return left;
}
void qsort(int a[],int left,int right)
{
if(left<right)
{
int q=partions(a,left,right);
qsort(a,left,q-1);
qsort(a,q+1,right);
}
}
void main()
{
clock_t start,finish;
double durtime;
start = clock();
srand(time(0));
int i,a[10];
for(i=0;i<10;i++)
{
a[i]=rand()%100;
printf("%d ",a[i]);
}
printf("\n");
qsort(a,0,9);
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
finish=clock();
durtime=(double)(finish-start)/CLOCKS_PER_SEC;
printf("\n%fseconds",durtime);
system("pause");
}