桶排序学案公开课.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《桶排序学案公开课.docx》由会员分享,可在线阅读,更多相关《桶排序学案公开课.docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、桶排序学案学习目标:1 .理解桶排序的算法思想.掌握桶排序算法思想在VB程序中的应用一、桶排序基本思想最快最简单的排序:桶排序接下来出场的我们的主人公小哼,旁边这个可爱的娃就是啦。 期中考试结束了,老师要将同学们的分数按照从高到低排序。小 哼的班上只有5个同学,这5个同学分别考了 5分、3分、5 分、2分和8分,哎考的真是惨不忍睹(总分值是10分)。接下 来将分数进行从大到小排序,排序后是85 5 32。你有没有什么 好方法编写一段程序,让计算机随机读入5个数然后将这5个 数从大到小输出。如以下图所示,桶排序的算法思想是这样的:要对分数进行排序,可以通过这样的方法来 实现,假设有11个桶,编号
2、为0-10o每出现一个数,就在对应编号的桶中放一面小旗子, 最后只要数数每个桶中有几面小旗子就可以了。例如2号桶中有1面小旗子,表示2号出现 一次;3号桶中有1面小旗子,表示3出现一次;5号桶中有2面小旗子,表示5出现两次; 8号桶中有1面小旗子,表示8出现了一次。0 0 0 0 0在输出时,如果是升序排序只要按照桶的编号,从小到大对桶进行检查,如果发现桶里 面只要有1面以上的小旗子(非空)就输出桶的编号,如果有2面小旗子就连续输出两次, 依此类推这样就快速实现升序排列了。而如果是在排序时去除重复的数据,就更快了。一般来说,桶的算法思想主要有以下三种功能:L桶计数功能、2.桶排序功能、3.验证
3、 数据是否存在。桶排序的解题模型:For i = 1 To n b(i) = 0 Next is = Text!. TextFor i = 1 To Len (s)c = Mid(s, i, 1)数据处理Next iFor i = 1 To nIf b(i) 0 ThenListl. Additem 输出End IfNext初始化:“洗桶”处理:“装桶” 输出:“数桶”二、桶排序练一练例1:桶排序的算法思想:如图a所示,有10个桶,编号为1-10。每出现一个数,就在对 应编号的桶中放一面小旗子,最后只要看每个桶中有几面小旗子就可以了。例如2号桶中有 1面小旗子,表示2号出现一次;3号桶中有1面
4、小旗子,表示3出现一次;5号桶中有2 面小旗子,表示5出现两次;8号桶中有1面小旗子,表示8出现了一次。最后只要按桶的 编号顺序逐次输出非空的桶编号即可实现排序功能。3 3 0 0 0小哼同学利用桶排序的算法思想实现对5个1,10随机整数的排序过程。实现上述功能 的VB程序如上图b所示,请在划线处填入合适的代码:O桶排序一 口 X23558排序DimDimForDimDimFora(lb(li=lToToto5) AsInteger 数组a用于存放产生的随机整数10) As Integer 数组b相当于桶10b(i)=0Next iFor i = 1 To 5a(i)=int (Rnd*10)
5、Listl. Addtem Cstr(a(i)Next iFor i = 1 To 10for j=l to_List2. AdditemNext jNext iEnd Sub例2:数字频率统计:小哼同学编写VB程序,实现如下功能:在Textl中输入一串包含数字 的任意字符串,单击“统计”按钮Commandl,在列表框Listl中统计并输出数字0-9出现 的次数,并在标签框Labell中输出出现次数最多的数字(次数相同的数字只要输出其中的 第一个)。运行界面如下图,VB程序代码如下:0数字统计一 口 X86-570Phone86-570Phone了了了了了了了了了了 现现现现现现现现现现 出出
6、出出出出出出出出 0123456789出现次数最多的数字是:5为实现上述功能,请在划线处填入合适的代码。Private Sub Commandl_Click ()Dim a(0 To 9) As Integer, s As StringFor i = 0 To 9If Dim k As String, i As Integer, max As Integer s = Textl.TextListl. ClearFor i = 1 To Len (s)k = Mid(s, i, 1)If k = 0 And k 二 9 Then Thenmax = iEnd IfListl. Additem S
7、tr (i) & 出现了:&a(i)& 次Next iLabell. Caption = 出现次数最多的数字 是: & Str (max)End SubEnd IfNext i max = 0课后作业:1.某VB程序段如下:Dim a(l To 5) As IntegerDim b(l To 10) As Integera(1)=7:a(2)=5:a(3)=9:a(4)=4:a(5)=3For 仁 1 To 5b(a(i) = b(a(i) + 1Next ipa=0For j= 1 To 10For k= 1 To b(j)pa=pa+ 1a (pa) = jNext kNext j该程序段
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 排序 公开
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内