算法程序设计与分析第一章要点.ppt

  1. 1、本文档共113页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法程序设计与分析第一章要点

目 录 前言 引入篇 第一章 算法概述 第二章 算法分析基础 基础篇 第三章 算法基本工具与优化技巧 核心篇 第四章 基本的算法策略 第五章 图的搜索算法 应用篇 第六章 算法设计实践 引 入 篇 第一章 算法概述 问题求解(problem solving)是个大课题,它涉及归约、推断、决策、规划、常识推理、定理证明和相关过程的核心概念。 1.1.1 用计算机求解问题的步骤 人在解决问题时有很大的灵活性,对于同一个问题,不同的人有不同的经验,会采用不同的方法,怎么样用计算机解决一个现实中的问题呢?虽然也是有很多不同的方法,但基本步骤是相同的。 问题分析 数学模型建立 算法设计与选择 算法表示 算法分析 算法实现 程序调试 结果整理文档编制 1. 问题分析 准确、完整地理解和描述问题是解决问题的第一步。要做到这一点,必须注意以下一些问题:在未经加工的原始表达中,所用的术语是否都明白其准确定义?题目提供了哪些信息?这些信息有什么用?题目要求得到什么结果?题目中作了哪些假定?是否有潜在的信息?判定求解结果所需要的中间结果有哪些?等等。必须认真审查表达问题的有关描述,深入分析,以加深对问题的了解。 2、数学模型建立 用计算机解决实际问题必须有合适的数学模型,因为在现实问题面前,计算机是无能为力。对一个实际问题建立数学模型,可以考虑这样两个基本问题:最适合于此问题的数学模型是什么?是否有已经解决了的类似问题可借鉴? 如果上述第二个问题的答复是肯定的,那么通过类似的问题的分析、比较和联想,可加速问题的解决。 3、算法设计与选择 算法设计是指设计求解某一特定类型问题的一系列步骤,并且这些步骤是可以通过计算机的基本操作来实现的。算法设计要同时结合数据结构的设计,简单说数据结构的设计就是选取存储方式。算法的设计与模型的选择更是密切相关的,但同一模型仍然可以有不同的算法,而且它们的有效性可能有相当大的差距。 4、算法分析 算法分析的目的,首先为了对算法的某些特定输入,估算该算法所需的内存空间和运行时间;其次是为了建立衡量算法优劣的标准,用以比较同一类问题的不同算法。通常将时间和空间的增长率作为衡量的标准。另参见1.1.4算法及其设计的评价 5、算法表示 对于复杂的问题,确定算法后可以通过图形准确表示算法。算法的表示方式很多如:算法流程图、盒图、PAD图和伪码(类似于算法设计语言)等。 6、算法实现 根据选用的算法设计语言,要解决下列一些问题:有哪些变量,它们是什么类型?需要多少数组,规模有多大?用什么结构来组织数据?需要哪些子算法?等等。 算法的实现方式,对运算速度和所需内存容量都有很大影响。 7、程序调试 算法测试的实质是对算法应完成任务的实验证实,同时确定算法的使用范围。测试方法一般有两种:白盒测试对算法的各个分支进行测试;黑盒测试检验对给定的输入是否有指定输出。 如何选择算法测试中的输入,还没有一般答案。通常采用的方法是,对输入数据做有代表性的采样,使之对被测试算法的各个语句、分支和路径尽可能都被检查到。对输入集中的边界点也要进行测试。经测试验证是否正确的算法,在较大程度上是可以相信它的正确性。 8、结果整理文档编制   编制文档的目的是让人了解你编写的算法。首先要把代码编写清楚。代码本身就是文档。同时还要采用注释的方式,另外还包括算法的流程图,自顶向下各研制阶段的有关记录,算法的正确性证明(或论述),算法测试结果,对输入/输出的要求及格式的详细描述等。    在这些步骤中,算法设计是解决问题的核心。 1.1.2 算法及其要素和特性 1、算法的定义   算法是指在解决问题时,按照某种机械算法步骤一定可以得到问题结果的处理过程。当面临某个问题时,需要找到用计算机解决这个问题的方法和步骤,算法就是对解决这个问题的方法和步骤的描述。 机械算法步骤是指,算法中有待执行的运算和操作,必须是相当基本的。换言之,它们都是能够精确地运行的算法,执行者甚至不需要掌握算法的含义,即可根据该算法的每一步骤要求,进行操作并最终得出正确的结果。 就本课程而言,算法就是计算机解题的过程。在这个过程中,无论是形成解题思路还是编写算法,都是在实施某种算法。前者是推理实现的算法,后者是操作实现的算法。 2.算法的要素 算法由操作、

文档评论(0)

ee88870 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档