世界上最快最简单的排序——桶排序
今天又是无趣的寒假之中的一天,但是,我准备好好开始学习算法了,我是想每天至少学习一种算法,也不知道能不能坚持下来,反正先试试,万一呢?!
世界上有好多东西都是需要排序的
栗子one:给你一串在十以内的数字进行降序排列
最好就是在输入时就进行归类,可以设一个a[11]的数组,放进去,最后再通过循环输出
#include <stdio.h>
    int main()
    {
        int a[11],i,j,t;
        for(i=0;i<=10;i++)
            a[i]=0;  //初始化为0
        for(i=1;i<=5;i++)  //循环读入5个数
        {
            scanf("%d",&t);  //把每一个数读到变量t中
            a[t]++;  //进行计数
        }
        for(i=10;i>=0;i--)  //依次判断a[0]~a[10]
            for(j=1;j<=a[i];j++)  //出现了几次就打印几次
                printf("%d ",i);
        getchar();getchar();
        //这里的getchar();用来暂停程序,以便查看程序输出的内容
        //也可以用system("pause");等来代替
        return 0;
    }*--i和i--在循环中是一样的效果,但是--i会稍微快一点
*时间复杂度事O(m+n),因为
for(i=0;i<=10;i++)进行了m次,
for(i=1;i<=5;i++)进行了n次,最后的双重循环进行了n+m次,所以是2(n+m)次,但是常数一般忽略怎么说这个桶排序只是最最最简单的一种,之后如果我学习到新的方法还会继续改进。PS:插点题外话,最近新型冠状病毒肆虐,全国的人们都进入了戒备状态。我也一样,刚开始真的是紧张的不得了,但是现在已经好多天了,心情也逐渐平复。真的真的看到了好多医生主动在春节期间去武汉进行支援,很感动,也很庆幸我们可以生活在这样一个如此强大的国家之中。相信在大家的共同努力下,我们会挺过来的,未来会更好!!!
相关推荐
  lixiaotao    2020-10-07  
   美丽的泡沫    2020-09-08  
   nongfusanquan0    2020-08-18  
   hang0    2020-08-16  
   earthhouge    2020-08-15  
   算法改变人生    2020-07-28  
   troysps    2020-07-19  
   Broadview    2020-07-19  
   chenfei0    2020-07-18  
   风吹夏天    2020-07-07  
   yangjingdong00    2020-07-05  
   数据与算法之美    2020-07-05  
   shawsun    2020-07-04  
   数据与算法之美    2020-07-04  
 要知道时间复杂度只是描述一个增长趋势,复杂度为O的排序算法执行时间不一定比复杂度为O长,因为在计算O时省略了系数、常数、低阶。实际上,在对小规模数据进行排序时,n2的值实际比 knlogn+c还要小。
  Evankaka    2020-07-04  
   田有朋    2020-06-28