算法教学中的几点思考.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法教学中的几点思考   摘要:算法是程序的核心,如何让计算机专业的学生学好算法设计与分析这门课,提出了算法实现,第一个问题以及子集树和排列树三个方面的重要性。   关键词:算法;程序;教学   中图分类号:G642文献标识码:A文章编号:1009-3044(2008)36-2799-01   Several Thought of Algorithm Teaching   WU Su-ping   (School of Mathematics and Computer Science, Ningxia University, Yinchuan 750021, China)   Abstract: Algorithm is the core of programme, How to learn the Algorithm design and analysis for computer students, the important of algorithm implement, the frist question and subset tree and permutation tree is provided in this paper.   Key words: Algorithm; Programme; Teaching   1 引言   程序=算法+数据结构,如果想通过计算机完成一项任务,必须通过程序来实现,而程序的核心、灵魂是算法,因此,算法的设计与分析的重要性可见一斑。算法设计与分析是一门理论性与实践性相结合的课程,是一门面向应用,在计算机科学与技术学科中处于核心地位的课程。通过该课程学习学生应掌握常用算法设计策略,提高软件开发设计和解决计算机科学与工程领域中较复杂的实际问题的能力;同时通过学习算法复杂性分析,培养学生在软件开发中注重效率的理念[1]。计算机专业的学生学习算法的设计与分析的最重要的目标之一,应当是在程序开发中的应用。因此,计算机专业的学生学好算法设计与分析这门课是非常重要的。文献[1-4]分别就算法教材建设以及算法教学中的教学方法,教学内容,教学手段以及教学改革方面做了论述。如何让计算机专业的学生能够学好这门课,本文结合教学实践经验,提出了算法实现、第一个问题以及子集树和排列树三个方面的重要性。   2 算法实现的重要性   算法设计与分析的书籍很多[5-8],但是,大多教材没有从计算机专业教学的角度来考虑内容的选择。很多算法设计与分析的教材中,忽视了算法实现。   算法教学一般按照从算法设计的思想到算法效率的分析两个步骤来讲,往往也轻视了算法实现这一环节。对计算机专业的学生,这一环节应是非常重要的。在算法的教学过程中,学生最头痛的不是算法思想的理解,而是算法实现读不懂。算法设计策略的讲授,算法设计及算法分析的讲授都较容易,学生也容易接受,但在讲授算法实现时,尤其是一些复杂算法的实现,却需煞费苦心,大费口舌。算法思想和实现往往相差甚远,经常会使学生摸不着头脑,如何把一个设计思想,用程序实现,如何进行过度?在教学过程中需要精心设计。   例如矩阵连乘问题:给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2,…,n-1。考察这n个矩阵的连乘积A1A2…An,提出矩阵连乘积的最优计算次序问题。用动态规划法解矩阵连乘积的最优计算次序问题,可递归地定义最优值。      其中m[i][j] 为计算A[i,j],1≤i≤j≤n,所需的最少数乘次数[9]。   用动态规划法解此问题,可依据其递归式以自底向上的方式进行计算。在计算过程中保存以解决的子问题答案,每个子问题只计算一次,而在后面需要时只需简单查一下,从而避免大量的重复计算,最终得到多项式时间算法[9]。   实现时如何保存已解决的子问题的答案?如何完成自底向上?讲授时引导学生思考,引导学生思考数组有什么特性?利用数组可重复使用的特性,将m[i][j]用数组实现,解决保存已解决子问题答案。m[i][j],1≤i≤j≤n,实际上是矩阵m[i][j],1≤i≤j≤n主对角线以上的元素。让学生用m[i][j]一条一条表示出主对角线以上每条次对角线上的元素,引导学生发现每一条次对角线上的元素实际上是表示了同一矩阵链长的矩阵连乘积的信息。将m[i][j],1≤i≤j≤n,自底向上,从左向右对一条一条次对角线上元素求解,最终求得的m[i][j],即是问题的答案。搞清了自底向上的含义,如何实现自底向上?引导学生思考,可用一个循环控制矩阵链长,其次内嵌一个循环求一条次对角线上的各个m[i][j]。在递归式中每个 ,其中ij。于是可内嵌一个循环求出最小的m[i][j]。通过三重循环实现对m[i][j],1≤i≤j

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档