原谅我很久都没发作品,主要是本羊羔遇到了点棘手的问题……
话不多说,进入正题:
目录
题目
我们需要给n个自然数排序(每个数不超过100),请用c++编写出来
精讲桶排概念
首先,我们要先弄清楚怎么桶排。
实际生活->举例
我们不妨举个例子:4个数,分别是1,4,2,1
于是我们把1放进编号为1的桶里,那么编号为1的桶里就有1个1;
接着,分别把后面的4,2,1放在对应编号的桶里,那么1号桶有2个1,2号桶有1个2,4号桶里有1个4
而我们的桶的编号是按顺序排的,就可以到每个桶里查看,如果桶里没有,则跳过,否则就把里面的数挨个输出,最后的答案就是1 1 2 4
怎么样?略懂一二了吗?想象力和理解力够好的人可以跳过了,剩下的如本羊羔的人一定觉得这个描述很抽象,所以我准备另外两套讲法(快夸我):
计算机语言->举例
依旧是那4个数:1,4,2,1
我们创建一个长度为4的数组a,为什么长度为4?这个问题留给你思考,待会儿解答
然后我们进行一个循环遍历:先把1放进下标为1的位置(简称位置1),那么位置1就有1个数;
然后把4放进位置4,那么位置4就有1个数;
接着把2放进位置2,那么位置2就有1个数;
最后把1放进位置1,那么位置1就有2个数。
我们把数分别放进了不同的桶里,最后再按照下标顺序输出即可:
位置1有2个数,我输出两个1;其它的也是如此。
讲到这儿,零基础的都看懂了吧?
思路很重要,然后再把代码写出来即可。
代码和题目
这里本羊羔就懒得写了,具体看此用户写的代码和提供的题目:
算法——桶排序(c++)_Passerby_XX的博客-CSDN博客_c++桶排序
没了,今天1024程序节,要不是没时间,我真想庆祝一下!
没想到吧,昨天是我们班主任的生日
本羊羔吃草去了,溜了……