国家级公共基础.ppt

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

武夷学院 孙平安 数据结构与算法 1.1 算法 1.1.1 算法的基本概念 算法是指解题方案的准确而完整的描述 算法的可解性 一个问题,如果可以通过一个计算机程序,在有限的存储空间内运行有限长的时间而得到正确的结果。 算法的基本特征 1、可行性(effectiveness) 针对实际问题设计的算法,人们总想得到满意的结果。但以个算法又总在某个特定的计算工具上执行的。因此,算法在执行过程中往往要受到计算工具的限制,使执行结果产生偏差。 2、确定性(definiteness) 算法中的每一个步骤都必须是有明确定义的,不允许出现模棱两可的解释。 算法的基本特征(续) 3、有穷性 算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。 有穷性还包括:合理的执行时间的含义。 4、拥有足够的情报 算法中的个中运算总是要施加到各个运算对象上,而这些运算对象有可能具有某种初始状态,这是算法执行的起点或是依据。 因此一个算法执行的结果总是与输入的初始数据有关,不同的输入将会有不同的结果输出。 当输入不同时,算法无法执行或执行有误。 算法综述 综上所述,所谓算法,是一组严谨定义的运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。 2、算法的基本要素 基本要素: 数据对象的运算和操作 算术运算:加、减、乘、除 逻辑运算:与、或、非 关系运算:大于、小于、等于、不等于 数据传输:赋值、输入、输出 算法的控制结构 算法的执行不仅与所实施的操作有关还与各操作的顺序有关 算法的控制结构: 顺序结构、选择结构、循环结构 常用的表示方法 传统的流程图、N-S结构化流程图、算法描述语言 3、算法设计基本方法 计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。 几种不同的算法设计方法 1、列举法:根据提出的问题,列举所有可能情况,并用问题中给定的条件检验那些是需要的,那些是不需要的。 特点: 算法简单 但当问题复杂时,运算量较大 几种不同的算法设计方法(续) 2、归纳法:通过列举少量的特殊情况,经过分析,最后找出一般的关系。归纳是一种抽象,即从特殊找出一般的关系。 特点: 从特殊找出一般的关系的过程中,不可能对所有的情况进行列举,因此,最后归纳得到的结论还只是一种猜测,这种猜测还要加以证明。 最终得到错误的猜测也是常有的。 几种不同的算法设计方法(续) 3、递推:从已知的初始条件出发,逐次推出所要求的各中间结果和最后的结果。 递推本质上也属于归纳法 递归的思想: 在解决复杂问题是,为了降低问题的复杂度,一般总是将问题逐层分解,最后归结为一些最简单的问题。 这种将问题逐层分解的过程,实际上并没有对问题进行求解,而只是当解决了最后那些最简单的问题后,在沿着原来分解的逆过程逐步进行综合。 递归的分类: 直接递归:a-b,b-a 间接递归:a-b,b-,c-a 5、减半递推技术 实际问题的复杂度往往与问题的规模有着密切的联系。采用分治法是行之有效的方法 所谓的减半指,将问题的规模减半,而问题的性质不变; 所谓的递推是指重复“减半”的过程。 6、回溯法 有些实际问题很难归纳出一组简单的递推公式或直观的求解步骤,并且也不能进行无限的列举。 对这类问题,一种有效的方法就是“试”,通过对问题的分析,找出一个解决问题的线索,然后沿着这个线索逐步试探,若试探成功,就得到问题的解,若失败就逐步退回,换别的路线在进行试探。 1.1.2 算法复杂度 算法的复杂度分为时间复杂度和空间复杂度 算法的时间复杂度 执行算法所需要的计算工作量 为了客观反映出一个算法的效率,在度量一个算法的工作量时,与以下两个因素无关: 计算机、程序设计语言、程序编制者 算法实现的过程中的细节 常用的度量方法: 使用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。 有利于比较同一问题的几种算法的优劣 时间复杂度 算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数使问题规模的函数,即: 最坏情况复杂性(worst-case complexity) 在规模为n时,算法所执行的基本运算的最大次数 2、算法的空间复杂度 一个算法的空间复杂度,一般是指执行这个算分所需要的内存空间。 一个算法所占的存储空间包括: 程序所占的空间 输入的初始数据所占得存储空间 算法执行过程中所需的额外空间 算法执行过程中的工作单元 某种数据结构所需的附加存储空间 实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间 1.2数据结构的基本概念 利用计算机进行数据处理是计算机应用的一个重要领域。 数据处理的关键 进行数据处理时,实际需要处理的数据元素一般很多,而这些大量的数据元素都需要存放在计算机中 大量的数

文档评论(0)

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

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

1亿VIP精品文档

相关文档