0
已采纳
黄依成
中级天翼
中级天翼
桶计数课后讲义(火箭v2)
桶计数
引言
假设有一堆标了号码的球散落一地,需要我们统计标号1的球有多少个?标号2的球有多少个?标号3的球有多少个?……
如果我们对球不做整理,直接去数,可能眼睛数花了还没数对。
此时我们准备好若干个桶:1号桶,2号桶,3号桶,…… 将每种标号的球投入对应的桶中,这样每个桶中球的个数就比较清楚了。
一.定义桶数组
1. 桶数组要定义在主函数外,或者定义时将数组元素值初始化为0。
因为我们要用数组元素来计数,每个数组元素的初值都要确保是0。
2. 桶数组的大小要根据要计数的数据的最大值来确定。
因为桶数组的下标对应要计数的数据,要保证桶数组计数时下标不越界。
二.桶数组计数的过程
对于某数组中的数,我们想要统计不同的数有分别有多少个。
则我们可以定义一个桶数组b[10]; (桶数组要保证最大下标不小于5)
一开始桶数组中所有元素的值都是0,然后我们遍历a数组,开始计数:
遍历a数组:1,2,3,2,3,5,1,5,2,3
遇到1,b[1]++ ;
遇到2,b[2]++ ;
遇到3,b[3]++ ;
遇到2,b[2]++ ;
遇到3,b[3]++ ;
遇到5,b[5]++ ;
遇到1,b[1]++ ;
遇到5,b[5]++ ;
遇到2,b[2]++ ;
遇到3,b[3]++ ;
所以最后b[1]=2,b[2]=3,b[3]=3,b[4]=0,b[5]=2。
表示原来的数组中 1有2个,2有3个,3有3个,4没有,5有2个。
三.本节知识点脉络
0