数据结构(Python语言描述)全套PPT课件.pptx

数据结构(Python语言描述)全套PPT课件.pptx

  1. 1、本文档共411页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 (Python语言描述) ;课程简介;课程地位;第1章 绪 论;求解问题的一般步骤;数据结构的例子;例2:磁盘目录文件系统 磁盘根目录下有很多子目录及文件,每个子目录里又可以包含多个子目录及文件,但每个子目录只有一个父目录,依此类推: 本问题是一种典型的树型结构问题,如图1-1 ,数据与数据成一对多的关系,是一种典型的非线性关系结构—树形结构。;例3:交通网络图 从一个地方到另外一个地方可以有多条路径。本问题是一种典型的网状结构问题,数据与数据成多对多的关系,是一种非线性关系结构。;1.1 基本概念和术语;什么是数据结构; 数据结构(Data Structure):是指相互之间具有(存在)一定联系(关系)的数据元素的集合。数据元素之间的相互联系(关系)称为逻辑结构。数据元素之间的逻辑结构有四种基本类型: 集合结构 线性结构 树形结构 图形结构;数据结构的形式定义; 数据结构的三个组成部分 逻辑结构: 数据元素之间逻辑关系的描述 B=(K,R) 存储结构: 数据元素在计算机中的存储及其逻辑关系的表现称为数据的存储结构或物理结构。 数据操作: 对数据要进行的运算。;数据的逻辑结构;集合结构 结构中的数据元素之间除了同属于一个集合的关系外,无任何其他关系。 图1-5所示为一个整数集合,即该集合内的所有元素都是整数。图1-6为一个实数集合,即该集合内的所有元素都是实数。 ;线性结构 结构中的数据元素之间存在着一对一的线性结构。 线性结构如图1-7所示,数据元素之间有一种先后的次序关系,A是B的前驱,C是B的后继。 ;树形结构 结构中的数据元素之间存在着一对多的层次关系,树形结构如图1-8所示。;图形结构 结构中的数据元素之间存在着多对多的任意关系。 图形结构如图1-9所示,城市之间的交通路线图就是多对多的关系。 ;1.3 算法;④ 输入: 一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。 ⑤ 输出: 一个算法有一个或多个输出,这些输出是同输入有着某些特定关系的量。 一个算法可以用多种方法描述,主要有:使用自然语言描述;使用形式语言描述;使用计算???程序设计语言描述。 算法和程序是两个不同的概念。一个计算机程序是对一个算法使用某种程序设计语言的具体实现。算法必须可终止意味着不是所有的计算机程序都是算法。;1.3.2 算法设计的要求; 算法执行时间需通过依据该算法编制的程序在计算机上运行所消耗的时间来度量。其方法通常有两种: 事后统计:计算机内部进行执行时间和实际占用空间的统计。 问题:必须先运行依据算法编制的程序;依赖软硬件环境,容易掩盖算法本身的优劣;没有实际价值。 事前分析:求出该算法的一个时间界限函数。;与此相关的因素有: 依据算法选用何种策略; 问题的规模; 程序设计的语言; 编译程序所产生的机器代码的质量; 机器执行指令的速度; 撇开软硬件等有关部门因素,可以认为一个特定算法“运行工作量”的大小,只依赖于问题的规模(通常用n表示),或者说,它是问题规模的函数。;算法分析应用举例;算法分析的规则;例题1;例题2;例题3和例题4;定理:若A(n)=a m n m +a m-1 n m-1 +…+a1n+a0是一个m次多项式,则A(n)=O(n m) 例5 for i in range(2, n): for j in range(2, n): x += 1 a[i][j] = x 语句频度为: 1+2+3+…+n-2=(1+n-2) ×(n-2)/2 =(n-1)(n-2)/2 =n2-3n+2 ∴时间复杂度为O(n2),即此算法的时间复杂度为平方阶。 一个算法时间为O(1)的算法,它的基本运算执行的次数是固定的。因此,总的时间由一个常数(即零次多项式)来限界。而一个时间为O(n2)的算法则由一个二次多项式来限界。; 以下六种计算算法时间的多项式是最常用的。其关系为: O(1)O(㏒n)O(n)O(n㏒n)O(n2)O(n3) 指数时间的关系为: O(2n)O(n!)O(nn) 当n取得很大时,指数时间算法和多项式时间算法在所需时间上非常悬殊。因此,只要有人能将现有指数时间算法中的任何一个算法化简为多项式时间算法,那就取得了一个伟大的成就。 有的情况下,算法中基本操作重复执行的次数还随问题的输入数据集不同而不同。;1.3.4 算法的空间分析;数据结构 (Python语言描述) ; 线性表是同一类型数据的一个有限序列,数据之间在逻辑上存在着线性关系。线性结构是最

文档评论(0)

粱州牧 + 关注
实名认证
内容提供者

资料收集自互联网,若有侵权请联系删除,谢谢~

版权声明书
用户编号:8036120077000004

1亿VIP精品文档

相关文档