- 8
- 0
- 约5.43千字
- 约 29页
- 2016-12-02 发布于天津
- 举报
datastructuresandalgorithmsanalysis
数据结构的发展概况和地位 《数据结构》作为一门独立的课程在国外是从1968年才开始的。 《数据结构》是计算机科学中一门综合性的专业基础课。 程序 = 算法 + 数据结构 程序是对所要解决问题的各个对象和处理规则的描述,或者说是数据结构和算法的描述(Niklaus Wirth 1984) 课程地位 计算机科学与技术专业本科生的专业基础课程之一 计算机专业本科生必修的学位课程 计算机专业研究生入学考试必考科目 计算机软件技术资格和水平考试内容 全国计算机等级考试(三级、四级)内容 课程地位(续) 为操作系统、数据库系统、编译原理、计算机网络等后续课程提供了必要的知识基础 为提高程序设计能力、逻辑思维能力和分析问题、解决问题的能力提供了必要的技能训练 本课程研究的问题 数据:数据是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号的集合。 数值性数据 非数值性数据 数值问题 — 对以数学方式表示的问题求数值解。例如,代数方程计算、矩阵计算、线性方程组求解、数值积分、微分方程求解等; 非数值问题 — 求非数值解。例如,排序查找、模式匹配等。 数据结构的研究问题:非数值数据之间的结构关系,及如何表示,如何存储,如何处理 例3 多叉路口交通灯管理问题 学习数据结构的必要性 数据结构 是指数据的组织 ? 更有效的程序 计算机功能越强大?尝试更复杂的问题(应用) 更复杂的问题需要更大的计算量 工作越复杂就越偏离人们的日常经验 数据的组织 对于任意组织的一组数据项能够查找出指定的数据项,将这些数据项处理成任何期望得到的顺序,或者更改任何特定数据项的值。 同一个程序,选择不同的数据结构和算法可能会产生很大的差异,有的可能在几秒钟就运行完毕,也有可能需要几天时间才能完成。 效率Efficiency 一种解决方案如果能在所要求的资源限制(resource constraints)内将问题解决好,则称该算法是有效率的(efficient) 空间Space 时间Time 一种算法的代价(cost)是指这种算法消耗的资源量 数据结构的选择 选择数据结构的步骤: 分析问题,以确定解决方案会遇到的资源限制 确定必须支持的基本操作,并度量每种操作的资源限制 选择最适合这些需求的数据结构 考虑的问题 开始时是将所有数据都插入数据结构,还是与其它操作混合在一起插入? 数据是否要删除? 所有数据是按一些定义明确的顺序来处理,还是允许随机访问? 数据结构的原则 每个数据结构都将代价与效益联系在一起 很少有一个数据结构在所有情况下都比其它算法好 一个数据结构需要: 一定的空间存储它的每一个数据项, 一定的时间来执行单个基本操作, 一定的程序设计工作。 数据结构的原则 (cont) 每一个问题都有可利用空间和时间的约束 只有对问题的特性进行仔细分析之后,才能得到执行这项任务最好的数据结构。 一个银行业务的例子: 新开帐户:花费几分钟 交易:几秒钟 注销帐户:整夜 课程的目的 加强一个概念:每一个数据结构都有其相关的代价和效益 学会常用的数据结构 这些数据结构形成了一个程序员的基本数据结构工具箱 了解如何评价一个数据结构或算法的代价(cost) 这些技术也使得程序员能够判断自己或别人发明的新数据结构的价值。 教学目的 学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步掌握算法的时间分析和空间分析技术 本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构清楚和正确易读,符合软件工程的规范。为今后的程序设计作一些铺垫 术语 类型(type)是一组值的集合 数据项(data item or element)是一条信息或者一个记录 数据类型(data type)是指一种类型和定义在该类型上的一组操作 数据项又称为数据类型的成员 简单数据项不包含子结构 复杂数据项可能包含多项信息 抽象数据类型 抽象数据类型(ADT):根据一组值的集合定义的数据类型和该数据类型上的一组操作集 每个ADT操作由它的输入和输出定义。 封装:隐藏实现细节 数据结构 数据结构是ADT的实际实现 与ADT联系在一起的每个操作由一个或多个子程序来实现 数据结构通常涉及数据在内存中的组织方式 文件结构是指在外存储器(如磁盘驱动器)上数据的组织 抽象化 ADT:复杂问题的抽象化:隐喻 标志的层次化 Ex: 晶体管 ? 门电路 ? CPU. ADT在程序中通过特定的数据结构实现,然而在设计使用ADT的那部分程序时,我们只关心数据类型上的操作,而不关心数据结构的实现 逻辑 vs. 物理形式 数据项有逻辑形式和物理形式。 逻辑形式:用ADT来给出数据项的定义 Ex:数学意义上的
原创力文档

文档评论(0)