- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FlashC语言冒泡排序设计与实现
基于FlashC语言冒泡排序设计与实现
【摘 要】C语言程序设计代码的学习复杂、枯燥,冒泡排序算法又是C语言程序设计的重点与难点内容之一。基于Flash的C语言冒泡排序课件,用Flash技术实现冒泡排序的动态演示过程,并逐步推导出冒泡算法的实现代码。算法的动态演示及代码的推导形象、直观、易懂,能够引导学生主动思考,便于学生理解,激发学生的学习兴趣。课件中的拓展知识模块能够培训学生的自学能力,培训学生发现问题、解决问题的能力。
【关键词】冒泡排序算法;Flash;C语言
C语言程序设计是高职院校工科学生的必修课。在程序设计中排序算法占据非常重要的地位,使用频率非常高,而冒泡排序是排序算法中最基本的算法。在程序设计教学中,冒泡的思想学生虽然容易理解,但掌握的不够扎实,自己动手编程的时候不知所措。经调查分析,学生在学习冒泡排序的过程中,不能亲自体验到数据“冒泡”的过程,对冒泡排序没有全面透彻的认识,对所学代码感到枯燥乏味。本文通过设计可视化的冒泡排序过程,动态地体现数据“冒泡”的过程,程序运行的每一步都清晰直观的体现出来,一目了然。在理解算法的基础上,冒泡算法的代码由易到难一步步推导出来,学生能够真正理解冒泡算法的程序代码,对整个过程印象深刻。冒泡算法的Flash动画,能够吸引学生的学习兴趣,会在教学中取得良好的效果。
1 冒泡排序算法简述
排序,是将数据元素的任意顺序排列为一个按关键字有序的序列。
冒泡排序算法是交换排序类的一种,它的基本思想是:在待排序的序列中,依次将相邻的两个数进行比较,顺序错误则进行位置交换。
假设对待排序的序列进行升序排序,将待排序序列中的每一个元素看成一个“气泡”,并且纵向排列,在排序的过程中,大数“沉底”,小数逐渐“浮起”,就像水底的气泡一样逐渐向上冒,所以形象地称为冒泡排序。
2 C语言冒泡排序课件的设计
本课件设计了排序的概念、基本思想、算法分析、名字由来、知识拓展五个独立的模块。
2.1 排序的概念模块
排序的概念模块主要介绍了排序的概念及其确切定义。
2.2 基本思想模块
基本思想模块主要介绍了冒泡排序的基本思想,通过冒泡排序的基本思想可以了解冒泡排序的基本过程。
2.3 算法分析模块
算法分析模块中以5、9、3、7、1五个数组成的待排序序列进行升序排列为例,分析冒泡排序的过程,并逐步推导出冒泡算法的代码。
首先进行算法分析,每一轮比较确定一个较大数,五个数需要经过四轮的比较最终达到序列有序,在每一轮比较中,依次比较相邻元素。第一轮比较中,依次对相邻元素进行比较,如果前面的元素大于后面的元素则进行交换,5个数经过4次比较,确定最大数9。第二轮比较中,对剩下的4个元素进行比较,确定第二大数7。依次类推,第三轮比较确定第三大数5,第四轮比较确定第四大数3,至此,序列有序。
然后,根据每轮的比较过程,分别写出四轮比较相对应的C语言程序代码,不难发现每轮的比较都可以用一个for循环解决,但循环条件不同,引导学生找到规律,再用一个for循环来解决。
算法分析模块中,对冒泡排序过程进行逐步演示并对程序代码进行一步步的推导,使整个排序过程动态的呈现出来,对程序代码的分析清晰易懂。在程序代码的推导过程中由易到难,引导学生独立思考,逐步实现冒泡排序算法。
2.4 名字由来模块
名字由来模块通过介绍冒泡排序名字的由来,强调冒泡排序 “两两比较,大数下沉,小数上浮”的特点,并通过一个完整的动画演示了大数“沉底”,小数逐渐“浮起”,就像水底的气泡一样逐渐向上冒这一过程。这一模块的设计主要是加深对冒泡排序算法基本思想的理解,有一个形象的记忆,只有真正理解了算法的基本思想,才能更好的掌握程序代码,而不是靠死记硬背程序代码。
2.5 知识拓展模块
知识拓展模块分为改进的冒泡算法和其他排序算法两部分。
改进的冒泡算法部分主要是提出问题,改进冒泡算法。在这一过程中,引导学生思考,培养学生发现问题解决、问题的能力。如果待排序的序列为9、1、3、5、7五个数,经过第一轮的排序该序列已经有序,第二轮的比较没有元素交换位置,不需要再进行后面两轮的比较,从而提高冒泡算法的效率。不难发现,没有交换就是提前退出外层循环的条件,增加一个标志变量flag,在每轮比较前,首先将flag的值设置为0(表示没有交换),每当元素位置发生变化时,将flag的值重新设置为1(表示有交换),在每轮比较结束后来判断本轮是否有元素交换位置,如果没有,提前退出外层循环。
其他排序算法部分介绍了比较排序算法和选择排序算法的基本思想,而且进行了分步演示及程序代码推导。比较排序算法和选择排序算法也是常用的排序算法,通过不同排序方
您可能关注的文档
最近下载
- 《居民委员会组织法》试题及答案.pdf VIP
- 合理使用基本药物培训.pptx VIP
- 2022-2023学年河北省石家庄市新华区七年级(下)期末数学试卷(附答案详解).docx VIP
- Unit2MoralsandVirtuesReadingandThinking课件-高中英语人教版(.pptx VIP
- IPC-9797中文版CN2020符合汽车应用要求及其他高可靠性应用要求的压接标准.pdf VIP
- 工程水文与水利计算.ppt VIP
- 2025年北师大版五年级数学下册期末测试卷.docx VIP
- QC080000有害物质管理体系课件ppt(PPT51张).ppt
- 国防教育基地建设项目运营方案.pptx VIP
- 汽车座椅焊接夹具设计_.docx
文档评论(0)