算法的时间复杂性.ppt

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

数据结构与算法;前 言 ;数据结构是程序设计的中级课程,主要培养学生分析数据、组织数据的能力,告诉学生如何编写效率高、结构好的程序。 学习数据结构这门课程之后,你就可以掌握大量基本的具有复杂结构的数据组的方法,数据存储的方法,掌握大量基本算法的设计方法,具有分析算法好坏的能力。为后续课程的学习,为由业余的软件工作者向专业的软件工作者的转变打下坚实的理论基础。;1 引 言 ; 1.1 引言 ; 因此,再把电子数字计算机简单地看作是进行数值计算的工具,把数据仅理解为纯数值性的信息,就显得太狭隘了。现代计算机科学的观点,是把计算机程序处理的一切数值的、非数值的信息,乃至程序统称为数据(Data),而电子计算机则是加工处理数据(信息)的工具。 由于数据的表示方法和组织形式直接关系到程序对数据的处理效率,而系统程序和许多应用程序的规模很大,结构相当复杂,处理对象又多为非数值性数据。因此,单凭程序设计人员的经验和技巧已难以设计出效率高、可靠性强的程序。于是,就要求人们对计算机程序加工的对象进行系统的研究,即研究数据的特性以及数据之间存在的关系——数据结构(Date Structure)。;1.2 数据结构的发展简史及其在计算机科学中所处的地位;地位: “数据结构”在计算机科学中是一门综合性的专业基础课。 数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。 数据结构这一门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。;; 1.3 什么是数据结构 ;例1.1 图书馆的书目检索系统自动化问题(表);例1.2 计算机和人对弈问题(树);例1.3 多叉路口交通灯的管理问题(图);例1.4 电话号码查询问题的稀疏索引存储(表);例1.5 田径赛的时间安排问题(图);1.4 基本概念和术语 ; 表 1-1 个人书库; 2.结点 结点也叫数据元素,它是组成数据的基本单位。在程序中通常把结点作为一个整体进行考虑和处理。例如,在表1-1所示的个人书库中,为了便于处理,把其中的每一行(代表一本书)作为一个基本单位(存取的最小单位)来考虑,故该数据由10个结点构成。 一般情况下,一个结点中含有若干个字段(也叫数据项)。例如,在表1-1所示的表格数据中,每个结点都有登录号、书号、书名、作者、出版社和价格等六个字段构成。字段是构成数据的最小单位。 ;3.逻辑结构 结点和结点之间的逻辑关系称为数据的逻辑结构。形式定义为一个二元组: Data_Structure=(D,R) 其中: D是数据元素的有限集,R是D上关系的有限集。 在表1-1所示的表格数据中,各结点之间在逻辑上有一种线性关系,它指出了10个结点在表中排列的前后顺序。根据这种线性关系,可以看出表中第一本书是什么书,第二本书是什么书,等等。; ;4.存储结构 数据在计算机中的存储表示称为数据的存储结构。 在表1-1所示的表格数据在计算机中可以有多种存储表示,例如,可以表示成数组,存放在内存中;也可以表示成文件,存放在磁盘上,等等。;四种基本的存储结构: 顺序存储结构:把逻辑上相邻的结点存储在物理位置上相邻的单元里,结点间的逻辑关系由存储单元的邻接关系来体现。 链式存储结构:不要求逻辑上相邻的结点在物理位置上也相邻,结点间的逻辑关系是由附加的指针字段表示的。 索引存储结构:在存储结点信息的同时,还建立附加的索引表。索引表中的每一项称为一个索引项,索引项的一般形式是:(关键字,地址),关键字是能唯一标识一个结点的那些数据项。若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引(Dense Index)。若一组结点在索引表中只对应一个索引项,则该索引表称之为稀疏索引(Sparse Index)。 散列存储结构:根据结点的关键字直接计算出该结点的存储地址。; 5.数据处理 数据处理是指对数据进行查找、插入、删除、合并、排序、统计以及简单计算等的操作过程。在早期,计算机主要用于科学和工程计算。进入八十年代以后,计算机主要用于数据处理。据有关统计资料表明,现在计算机用于数据处理的时间比例达到80%以上,随着时间的推移和计算机应用的进一步普及,计算机用于数据处理的比例必将进一步增大。 ;6.数据结构(Data Structure) 数据结构是研究数据元素(Data Element)之间抽象化的相互关系和这种关系在计算机中的存储表示(即数据的逻辑

文档评论(0)

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

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

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档