



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、算法与程序设计选择排序一、学情分析通过上学期算法与编程部分的学习,学生初步了解算法及其表示、比较熟悉流程图设计;本学期程为算法与程序设计 ,对算法的理解更加深入,要求能通过 VisualBasi 实现简单算法;在本之前,学生应了解了流程图的应用,熟悉在一组数中求极值算法,对于排序及冒泡排序,学生比较熟练。对于本部分,学生可能会对选择排序算法的原理理解较为困难,需要教师的引导学习。学生应当在学习过程中认真听取教师对于算法的分析,在教师指导下能解释该算法的流程图,进而实现程序。二、教学目标知识性目标:了解排序的概念、能在现实生活中列举出关于排序的实例能对照冒泡排序,解释选择排序的优势,指出选择排序
2、的策略,找出数字之间的逻辑联系有迁移应用能力,能由此及彼,归纳排序中的数字规律,探索更有效率的排序算法技能性目标:具有模仿水平,在教师指导下可以表达出选择排序的思想,能对流程图作出解释能独立完成流程图的绘制,对选择排序的各个环节比较熟练,并能在VisualBasi环境中规范地编写程序情感、态度、价值观目标:学生在学习过程中,通过亲身经历体验选择排序的实现过程,获得对此算法的感性认识利用信息技术手段,开展交流合作,把自己对此算法的心得与他人交流,培养良好的信息素养,提升热爱科学的理念三、重点难点重点:对选择排序原理的理解,绘制流程图,数据交换,调试程序难点:分析流程图四、教学策略与手段把握重点,
3、 先导入问题, 复习排序定义,分析冒泡中数据交换次数多的问题,指出冒泡排序法效率不高,从而引出数据交换次数较少的选择排序算法在教学过程中,可通过 Flash 演示材料,比较直观地把抽象的问题简单化,由“流程图雏形绘制” - “逐步完善流程图” - “程序实现” - “调试”的过程,让学生熟练此算法与程序实现。在教学中可灵活运用小组合作、分组讨论、小组间竞赛等手段进行教学,通过发散性思维的培养,增强学生对知识的探索能力。五、前准备 1学生的学习准备:对流程图的绘制方法、 VB 语法作巩固,对选择排序算法作预习;学生分组: 4 人一组 2教师的教学准备:准备充分的演示材料、相关数据、相关软安装。
4、3教学环境的设计与布置:计算机教室六、教学过程简要点拨排序的概念。演示已经学习过的冒泡排序 Flash 动画。 小组讨论 在冒泡排序算法中,我们知道冒泡排序是依次把数组中相邻两个数据进行比较,通过交换数据,把较小的数据逐次向上移动的算法。由于数据的移动是逐次进行的,数据交换的次数相当多。大家想想它的实质既然是将一堆数据中的最小数据移动到某个位置,有没有必要让这个数字逐个移动?比如,对于数组: 4、8、3、9、6、11、10、2、 9,如果要用冒泡法实现排序,第一遍冒泡其实是把这组数据中最小数“2”移动到最前边,第二遍冒泡把“ 3”逐次移到第二个位置,其它类推。它们的过程是逐次向前的,这样做很多
5、无谓的交换。为了达到移动2到最前边的目的我们可以怎么简化这个过程?学生直接把2 最前面的数 4 交换,再把 3 与第二个位置的数8 交换,其它类推 教师 这个思想就是今天我们要学习的选择排序算法 小组讨论 选择排序的实质是每次把一堆数据中的最小数移到某个位置,那么这样的操作在规模为N 的数组中会做多少次?N-1 次,因为经过 N-1 次操作已经确定了第 1 到 N-1个位置的次序,第 N 个位置也自然可以确定。 小组讨论 找出数组中的最小数用什么策略? 复习巩固 可以借助一个自定义的 Integer 型变量 in ,用它记录最小的一个数据的下标。首先,不管实际情况如何,我们先假设数组中第1 个
6、元素为最小,于是有 in=1 ,再把这个元素与从第2个元素开始的所有元素作比较,一旦有比d 更小的元素存在,则修改in变量值为新的较小元素下标。这样,在d 经过了从第2 个元素到最后一个元素的一一比较后,所得到in 应该就是第 1到 N个元素中的选举出来的最小元素下标了。然后用类似的方法,把第 2 到 N 个元素中最小数选举出来;把第3 到 N个元素中最小数选举出来 I 1:in 1: 2开始 <N?d<d?in N=+1 最后把每次选举出来的结果依次输出即可实现升序排列。 学生完成第1 遍处理过程的流程图片断依据流程图写出代码DiinAsIntegerDiAsIntegerin=
7、1Fr=2TNIfd<dThenin=Next小组讨论在遍历了一遍后如果发现第1-N个数中的最小数d,根据选择排序的思想,需要把它与第1 个数字进行交换。如何进行? 请同学发言 打个比方,在厨房里有一瓶酱油、一瓶醋和一个空瓶,如何利用这个空瓶实现酱油与醋?可先把酱油倒到空瓶中,再把醋倒到原来装酱油的瓶中,然后从原来的空瓶中把酱油倒到原来装醋现在已经空的瓶中,即可实现换位。 教师 大家动动脑筋,用这种 思 想 , 试 试 把d 与d 换 位 , 并 写 出 相 应 的 代 码 。DiTepAsIntegerTep=d:d=d:d=Tep关键在于引入“空瓶”变量Tep 思考 是不是每遍历一遍
8、后必须做这样的一次交换?不是必须的,只有当确实发现有比d 小的数后才交换 教师 那怎么知道有没有发现比 d 更小的数呢? I 1:in 1: 2 开始 <N?d<d?inNN in<>1?Tep=dd=dd=Tep=+1 其实在遍历之前我们已经假设第 1 个元素最小, 即 in=1 ,所以在遍历一遍后我们只需要验证一下in=1是否还成立。成立则表明没有比第1 个元素小的数,不成立则表明有比第1 个元素小的数,且它的下标为in ,此时要交换d 与 d。 学生完善流程图及代码Ifin<>1thenTep=d:d=d:d=TepEndIf教师 我们先前说过,对于规
9、模为 N 的数组,需要遍历处理次数为N-1 次,以上的流程就是这N-1次中需要重复做的事,对于重复处理的事,可以用什么结构?循环,以上的比较、交换即为循环体教师大家试着把这个循环结构流程图画出来学生完善流程图及代码开始<N?d<d?inN输出排序结果Nin<>I?Tep=dd=dd=TepI<=N-1I1N结束I=I+1=+1in=I:=I+1FrI=1TN-1in=IFr=I+1TNIfd<dThenin=NextIfin<>IThenTep=d:d=d:d=TepEndIfNextIFr=1TNPrint)Next调试程序 扩展提高 我们知道,冒泡排序的效率比较低,主要因为数据交换的次数多,那我们如何知道选择排序中数据交换的次数?学生带着问题思考并实践可利用一个自定义Integer型变量, 初值0,记录数据交换次数,在程序交换数据部分令其自加1,程序结束时输出结果。完整的程序为DiI,in,ishuAsIntegerishu=0FrI=1TN-1 in=IFr=I+1TNIfd<dThenin=N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届内蒙古鄂尔多斯市名校八下数学期末复习检测模拟试题含解析
- 权威发布2025年法学概论考试试题及答案
- 深入理解DevOps与持续集成试题及答案
- 互联网时代的公司战略调整试题及答案
- 信息处理技术员2025年试题及答案指南
- 论述人的尊严的2023年高考作文试题及答案
- 信息处理员的应对策略试题及答案
- 安徽省马鞍市培正学校2025届数学七下期末学业水平测试模拟试题含解析
- 法学概论的演变过程试题及答案
- 风险管理过程中的沟通试题及答案
- 人教版六年级上册数学(新插图) 倒数的认识 教学课件
- 港口装卸工艺chap3-件杂货
- CJJ 36-2016 城镇道路养护技术规范
- 直臂式高空作业车安全管理培训课件-
- 之江实验室:生成式大模型安全与隐私白皮书
- 灵芝孢子油的作用
- 免疫组织化学检验技术(免疫学检验课件)
- 世界文明史学习通课后章节答案期末考试题库2023年
- 某石料厂年产10万吨石灰岩开采建设项目可行性研究报告
- 养老院安全工作会议记录范本
- 胸腔镜下肺癌根治的手术配合
评论
0/150
提交评论