数据结构和STL_第1章_绪论课件.ppt

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

《数据结构与STL》 第一章 绪论 北京邮电大学 信息与通信工程学院 第一章 绪论 学习内容: 1.1 数据结构的起源 1.2 数据结构的基本概念 1.3 算法和算法分析 1.4 STL与数据结构 1.5 实例分析 1.1 数据结构的起源 程序设计的两个重要问题: 起源 数据结构是计算机及其相关专业的重要课程 计算机发展初期:处理数值计算问题 ——不重视数据结构 20世纪60~80年代:非数值处理问题 ——沃思:算法 + 数据结构 = 程序 20世纪80年代至今:面向对象(OO)技术出现 ——数据结构与面向对象具有天然的对应 第一章 绪论 学习内容: 1.1 数据结构的起源 1.2 数据结构的基本概念 1.3 算法和算法分析 1.4 STL与数据结构 1.5 实例分析 1.2 数据结构的基本概念 数据(data) 信息的载体 分为两类:数值型数据、非数值型数据 数据元素(data element) 也称为元素、结点、顶点或记录 是数据的基本单位,在计算机程序中通常作为一个整体进行处理。 数据项(data item) 也称为字段或域 构成数据元素的不可分割的最小单位。每个数据元素可以包含多个不同的数据项。 数据类型(data type) 具有相同性质的计算机数据的集合以及在这个数据集合上的一组操作。 可分为简单类型和构造类型。 数据结构的概念 数据结构(data structure) 是指按照某种逻辑关系组织起来的一组数据,按一定的存储方式存储在计算机的存储器中,并在这些数据上定义了一组运算的集合。 通常人们认为数据结构包含三个方面的内容: 数据的逻辑结构 描述数据相互间的关联形式或邻接形式 反映了数据内部的构成方式 定义了数据的本质特点 常常将数据的逻辑结构直接称为数据结构 数据的逻辑结构独立于计算机,与存储方式无关,可认为是从具体问题抽象出来的数学模型。 数据元素之间不同的逻辑特点代表不同的逻辑结构 数据的存储结构 考虑如何在计算机的存储器中存储各个数据元素,并且同时反映数据元素间的逻辑关系。 对于每种逻辑结构,都可以设计多种存储方法 各种数据结构的学习主线 第一章 绪论 学习内容: 1.1 数据结构的起源 1.2 数据结构的基本概念 1.3 算法和算法分析 1.4 STL与数据结构 1.5 实例分析 1.3 算法和算法分析 算法——解题的方法 数据的运算是通过算法(algorithm)描述的 讨论算法的效率和性能是数据结构课程的重要内容 算法通常满足5个准则: 输入:具有0个或多个输入的参数。 输出:算法执行要有输出结果。 有穷性:算法中每条指令的执行次数必须是有限的。 确定性:每条指令必须有确切的含义,无二义性。 可行性:每条指令的执行时间都是有限的。 常见的算法描述方法: 自然语言 流程图 伪代码 程序设计语言 欧几里得算法描述举例 辗转相除法求两个自然数m和n的最大公约数,假定m≥n 自然语言描述: 流程图描述: 欧几里得算法描述举例 伪代码描述: 程序设计语言描述: 欧几里得算法描述举例 采用面向对象的方法描述: 算法分析 算法好坏的评价: 算法的时间复杂度 算法的空间复杂度 算法的可读性 ...... 算法的执行时间: 与哪些因素相关? 问题规模通常是指算法处理的数据量的大小,记作 n。 运行算法所需要的时间T可看作问题规模n的函数,记作T(n)。 语句的频度(frequency count) 即:语句执行的次数 假定每条语句执行一次所需的时间是单位时间,则每条语句执行的时间正比于该语句执行的次数 算法运行时间≈算法中所有语句的频度之和。 算法的渐进时间复杂度 简称为 分析算法的时间复杂度 特殊情况下的算法时间复杂度 最好时间复杂度 最坏时间复杂度 平均时间复杂度 时间复杂度的思考? 多项式时间问题(polynomial time problem) 存在以问题规模n为变量的多项式函数p(n),解决问题的算法的时间复杂度为O(p(n)) P问题 指数时间算法: 时间复杂度函数不能用多项式函数界定 常见的时间复杂度 常数阶O(1)、对数阶O(logn)、线性阶O(n)、线性对数阶O(nlogn)、平方阶O(n2)、立方阶O(n3)、…、k次方阶O(nk)、指数阶O(2n)等。 当问题规模n较大时,具有指数阶量级的算法是不可计算的 NP问题 非确定性多项式时间问题:non-deterministic

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档