网站大量收购独家精品文档,联系QQ:2885784924

数据结构与算法概述.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

任何受过专业训练的程序员,对“数据结构”这门课程中涉及到的各种数据结构都不会陌生,但是在实际的编程工作中,大部分的数据结构都不会用到,而且也永远都不会用到。虽然如此,深入地理解基本数据结构的概念和实现细节,仍然是每个程序员的任务。这不仅仅是因为,掌握这些知识将有利于更加正确和灵活地应用它们,而且也是因为,对于语言背后的实现细节的求知欲是一个优秀程序员的素质。-摘自《最基础的数据结构》关于数据结构中的结构数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的,可以看作是从具体问题抽象出来的数学模型。数据的逻辑结构有两大类:线性结构:线性表非线性结构:树和图数据的存储结构是逻辑结构用计算机语言的实现,它是依赖于计算机语言的。数据的存储结构有以下四种基本的存储方法。顺序存储方法链接存储方法索引存储方法散列存储方法最常用的运算有查找、插入、删除、更新、排序等。数据的运算是定义在数据的逻辑结构上的,每种逻辑结构都有一个运算的集合。查找排序重点研究的两类基本算法:关于数据结构中的算法本课程的结构线性表栈队列串多维数组树图查找排序线性结构非线性结构算法第二问题

数据结构研究什么?运算逻辑结构存储结构第三问题

重新理解算法AlgorithmAEDBC算法算法设计的原则算法的存储空间需求算法效率的度量方法和准则算法和算法的分析有穷性2.确定性3.可行性01有输入5.有输出算法是为了解决某类问题而规定的一个有限长的操作序列。一个算法必须满足以下五个重要特性:02一、算法1.有穷性对于任意一组合法输入值,在执行有穷步骤之后一定能结束,即:算法中的每个步骤都能在有限时间内完成;确定性对于每种情况下所应执行的操作,在算法中都有确切的规定,使算法的执行者或阅读者都能明确其含义及如何执行。并且在任何条件下,算法都只有一条执行路径;有输入作为算法加工对象的量值,通常体现为算法中的一组变量。有些输入量需要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上已被嵌入算法之中;02可行性算法中的所有操作都必须足够基本,都可以通过已经实现的基本操作运算有限次实现之;01有输出它是一组与“输入”与确定关系的量值,是算法进行信息加工后得到的结果,这种确定关系即为算法的功能。算法设计的原则可读性健壮性高效率与低存储量需求正确性设计算法时,通常应考虑达到以下目标:首先,算法应当满足以特定的“规格说明”方式给出的需求。其次,对算法是否“正确”的理解可以有以下四个层次:程序中不含语法错误;程序对于几组输入数据能够得出满足要求的结果;1.正确性c.程序对于精心选择的、典型、苛刻且带有刁难性的几组输入数据能够得出满足要求的结果;d.程序对于一切合法的输入数据都能得出满足要求的结果;通常以第c层意义的正确性作为衡量一个算法是否合格的标准。1201算法主要是为了人的阅读与交流,02其次才是为计算机执行。因此算法应该易于人的理解;另一方面,晦涩难读的程序易于隐藏较多错误而难以调试;2.可读性3.健壮性当输入的数据非法时,算法应当恰当地作出反映或进行相应处理,而不是产生莫名奇妙的输出结果。并且,处理出错的方法不应是中断程序的执行,而应是返回一个表示错误或错误性质的值,以便在更高的抽象层次上进行处理。4.高效率与低存储量需求通常,效率指的是算法执行时间;存储量指的是算法执行过程中所需的最大存储空间。两者都与问题的规模有关。在有些情况下,两者相互矛盾算法==程序?算法是为了描述解决某一问题的方法,而不涉及具体的实现细节。频度和时间复杂度虽不能精确地确定一个算法或程序的执行时间,但可以让人们知道,随着问题尺寸的增大,算法耗用时间的增长趋势。对于空间占用的讨论可类似于时间复杂度,由估算渐近空间复杂度得到空间复杂度。由于问题中原始数据所占用的空间与算法无关,故一般考虑空间复杂时,只估算算法中所需增添的辅助空间。我们希望选用一个所占存储空间小、运行时间短、其它性能也好的算法。然而,实际上很难做到十全十美。原因是上述要求有时相互抵触,要节约算法的执行时间往往要以牺牲更多的空间为代价,而为了节省空间可能耗费更多的计算时间。因此我们只能根据具体情况有所侧重。若该程序使用次数较少,则力求算法简明易懂;对于反复多次使用的程序,应尽可能选用快速的算法;若待解决的问题数据量极大,机器的存储空间较小,则相应算法主要考虑如何节省空间。写在前面的话本课程学习的是什么?学习在思考问题时,不仅按人的逻辑方式思考,也按计算机的逻辑思

文档评论(0)

SYWL2019 + 关注
官方认证
文档贡献者

权威、专业、丰富

认证主体四川尚阅网络信息科技有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510100MA6716HC2Y

1亿VIP精品文档

相关文档