世界上最快最简单的排序——桶排序
Posted -113
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了世界上最快最简单的排序——桶排序相关的知识,希望对你有一定的参考价值。
今天又是无趣的寒假之中的一天,但是,我准备好好开始学习算法了,我是想每天至少学习一种算法,也不知道能不能坚持下来,反正先试试,万一呢?!
世界上有好多东西都是需要排序的
栗子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:插点题外话,最近新型冠状病毒肆虐,全国的人们都进入了戒备状态。我也一样,刚开始真的是紧张的不得了,但是现在已经好多天了,心情也逐渐平复。真的真的看到了好多医生主动在
春节期间去武汉进行支援,很感动,也很庆幸我们可以生活在这样一个如此强大的国家之中。相信在大家的共同努力下,我们会挺过来的,未来会更好!!!
以上是关于世界上最快最简单的排序——桶排序的主要内容,如果未能解决你的问题,请参考以下文章