内容正文:
2020年11月奉化二中周测试题
试题回顾
部分代码
Dim d(1 to n) as integer ‘存储小题得分
Dim a(-1 to 1) as integer ‘存储-1,0,1个数
a(d(j))=a(d(j))+1
桶排序
for i=1 to n ‘去掉数字2
if d(i)=2 then
c=c+1
else
d(i-c)=d(i)
end if
Next i
n=n-c
for j=1 to n
Next j
‘统计-1,0,1的个数
桶排序
VB压轴题复习专题
在日常生活中,会遇到各种排序现象。体育课排队,由低到高。考试名次按照分数排序。网络购物按照销售量排序,价格排序……
排序无处不在。桶排序是一种优化的排序算法。
2. 数组
可理解为存储数据的容器。
1. 桶
数据元素序列,用于存储多个相同类型数据的集合(多个“桶”)。
数组元素访问:数组名(下标)。
三步走模型:“洗桶”、“装桶”、“数桶”
For i = 1 To n
b(i) = 0
Next i
s = Text1.Text
For i = 1 To Len(s)
c = Mid(s, i, 1)
’数据处理
Next i
For i = 1 To n
If b(i) > 0 Then
List1.AddItem ’输出
End If
Next
初始化:“洗桶”
处理:“装桶”
输出:“数桶”
解题思路:
实际问题模型:如某班技术成绩排序(范围确定,重复率高)
将结构模型分解,串珠成链;
以算法巩固语法(如常见函数,for/Do循环,字符串,数组)
模型积累
“桶”应用1:桶排序
例1:若有11个桶,编号从0~10,每出现一个数时, 就在以该数编号的桶中放一面小旗子,最后只要按顺序数每个桶中有几面小旗子,就能得到这几个整数的有序排列。例如2号桶中有1个小旗子,表示2出现了一次;3号桶中有1个小旗子,表示3出现了一次;5号桶中有2个小旗子,表示5出现了两次;8号桶中有1个小旗子,表示8出现了一次,最后只要按桶的编号顺序逐次输出非空的桶的编号即可实现排序功能,为“2,3,5