一  桶排序分析

     写完了这个桶排序,赶紧睡觉了,明天还要上课,程序猿的悲哀啊,没想到排序一写就停不下来了,,奏是感觉桶排序很帅,帅爆了,排序时间又快,而且也很简单,这种用坐标的记录值得思想很值得借鉴,记得我进实验室的时候,学长就考了一道题,最后发现用桶排序是轻而易举的事,直接上思想了,瞌睡的很啊。

a数组的的一个值等于b数组的一个下标时,b[i]++,现在应该秒懂吧,贴完图片和代码就碎觉。

 二  代码



#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int i,j;
int a[10]; // 就用10个数
int b[100]={0}; //对b数组初始化为0
srand((unsigned)time(NULL));
printf("\n输出乱序数组:");
for(i=0;i<10;i++)
{
a[i]=rand()%10+10; //产生10~20之间的数
printf("%d ",a[i]);
b[a[i]]++;
}
printf("\n输出排序数组:");
for(i=0;i<20;i++) //因为产生的是最大值是19,我用了20
{

for(j=0;j<b[i]&&b[i]>0;j++)
printf("%d ",i);
}
printf("\n");
return 0;
}

 

 

 

三  结果演示

     1. 输出重复元素

         

数据结构排序之桶排序_重复元素

        2.不输出重复元素(只要把上面代码去掉一点就阔以了,在不懂就没办法了)

数据结构排序之桶排序_重复元素_02