/*
桶排序
*/
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define TOTAL 100
void init_num(int x[]) //产生0-99大小之间的随机数
{
int i;
srand( (unsigned)time( NULL ) );
for(i=0;i<TOTAL;i++)
{
x[i]=rand()%100;
}
}
void tong_paixu(int x[])
{
int tong[100]={0};
int i,j;
for(i=0;i<TOTAL;i++)
tong[x[i]] +=1;
for(i=0;i<100;i++)
{
if( (j=tong[i]) !=0)
{
while(j--)
{
printf("%d ",i);
}
}
}
}
int main()
{
clock_t start,finish;
double difTime;
int num[TOTAL];
int i;
init_num(num);
for(i=0;i<TOTAL;i++)
{
printf("%d ",num[i]);
}
printf("/n");
start=clock();
tong_paixu(num);
finish=clock();
difTime=(double)(finish-start)/CLOCKS_PER_SEC;
printf("use %f secons/n",difTime);
return 0;
}