最快快快的桶排序(1956年)

Posted 算法零基础学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最快快快的桶排序(1956年)相关的知识,希望对你有一定的参考价值。

很久没来写算法了.......还好大家没有抛弃我。谢谢大家

今天介绍一个超级简单的简化了的排序算法—桶排序,该算法由E.J.Issac和R.C.Singleton提出。应付一些简单的排序还是很不错的哟!

借用一维数组的形式来实现这个算法,例如用输入0-m之间的n个数字,进行排序,按从大到小输出结果。

算法如下:

简要说明一下:这里设置了m为1000,n是需要输入的。

后面的getchar()...缓一缓。(没啥大的作用)

精彩的地方在于假设你输入5个数。20 63 96 960 206 首先数组的每一个元素都是0,之后你输入20,对应20的位置上的元素的数值就会加1,有几个就加几个,这就是利用了数组下标作为输入的数字的值。

之后在输出的时候,你要注意啦,算法的最精彩的地方就在这里啦,看到 j 没有从1开始,避免了0的那些东西。。。。。。

这只是一个简化了的排序算法,后面的时候会进一步学习,谢谢大家。可以敲一下,感受算法的魅力。

这个数组的时间复杂度为O(m+n)很快啦!

#include<stdio.h>

int main(){

int a[1001],i,j,t,n;

for(i=0;i<=1000;i++){

a[i]=0;

}

scanf("%d",&n);

   for(i=1;i<=n;i++){

       scanf("%d",&t);

       a[t]++;

   }

for(i=1000;i>=0;i--)

        for(j=1;j<=a[i];j++){

        printf("%d ",i);

}

getchar();

getchar();

return 0;

}


以上是关于最快快快的桶排序(1956年)的主要内容,如果未能解决你的问题,请参考以下文章

桶排序

排序算法整理(啊哈算法)

排序算法之桶排序

排序算法之桶排序

经典算法之桶排序

排序算法第一篇(简单桶排选择排序冒泡排序快速排序)