- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chap1_算法与数据结构—C语言描述(2版)张乃孝编课件
算法与数据结构 计算机与电子信息工程系 万励 QQ : 529566152 Email: teacherwan@ 数据结构的地位 “数据结构”在计算机科学中是一门综合性的专业基础课。 数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。 数据结构这一门课的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。 课程目的 能够分析研究计算机加工的对象的特性,获得其逻辑结构,根据需求,选择合适存储结构及其相应的算法; 学习一些常用的算法; 复杂程序设计的训练过程,要求编写的程序结构清楚和正确易读; 初步掌握算法的时间分析和空间分析技术; 第一章 概论 问题和实例 数据结构? 抽象数据类型ADT 类C描述 算法和算法分析 问题和实例(1) 当我们使用计算机来解决一个具体问题时,一般需要经过下列几个步骤: 问题 抽象 数据结构 算法 程序 问题和实例(2) 快速送达疫苗 已知有临近的五个村子发生了疫情,我们要用汽车快速地将疫苗送达到5个村子。目标是寻找一条耗时最少的路线。 数据结构 是一门研究非数值计算的程序设计问题中,计算机操作的对象以及它们之间的关系和操作的学科 例子 书目自动检索系统 人机对奕问题 快速送达疫苗问题 数据结构 例1 书目自动检索系统 例2 人机对奕问题 基本概念和术语 数据(Data):客观事物在计算机中的符号表示,是能被计算机识别和处理的符号总称。(数值型、非数值型) 数据元素(Data Element):数据的基本单位,用于完整地描述一个对象; 数据项(Data Object):组成数据元素的有特定意义的最小单位 。 数据对象(Data Object):相同特性数据元素的集合,是数据的一个子集合。 基本概念和术语 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。 基本概念和术语 形式定义:数据结构是一个二元组Data_Structure =(D,R),其中,D是数据元素的有限集,R是D上关系的有限集。 基本概念和术语 存储结构(物理结构)数据结构在计算机中的表示。 顺序存储结构:借助元素在存储器中的相对位置表示数据元素之间的关系。 链式存储结构:借助指示元素存储地址的指针(Pointer)表示数据元素之间的逻辑关系。 抽象数据类型 抽象数据类型:(Abstract Data Type)ADT:一个数学模型以及定义在该模型上的一组操作。 ADT 抽象数据类型名{ 数据对象:{数据对象定义} 数据关系:{数据关系定义} 基本操作:{基本操作定义} }ADT 抽象数据类型名 算法和算法分析 算法(Algorithm):是对特定问题求解步骤的一种描述,是指令的有限序列。其中每一条指令表示一个或多个操作。一个算法应该具有下列特性: 算法和算法分析 算法设计的要求: 正确性: 可读性: 健壮性: 效率与低存贮量要求 时间复杂度 空间复杂度 算法效率 衡量算法效率的方法主要有两大类: 事后统计:利用计算机的时钟(与硬件有关); 事前分析估算:用高级语言编写的程序运行的时间主要取决于如下因素: 算法; 问题规模; 使用语言:级别越高,效率越低; 编译程序; 机器; 时间复杂度 ++x; s=0; 语句频度为1,时间复杂度为O(1)。 时间复杂度 时间复杂度 例:矩阵加法:n x n for( i = 0; i n; i++) { for( j = 0; j n; j++) { c[i][j] = a[i][j] + b[i][j]; } } 语句的频度(Frequency Count ): 重复执行的次数:n*n; T( n ) = O ( n 2) 即:矩阵加法的运算量和问题的规模n的平方是同一个量级; 时间复杂度 k = 0; for( i = 0; i n; i++) { for( j = 0; j = i; j++) { a[i][j] = ++k; } } 执行次数:n*(n+1)/2 算法的空间复杂度 T( n ) = O ( n 2) * * * * * * 程序 = 数据结构 + 算法 胜利 发生疫情的五个村子 河源 长利 太华 桦南 1 2 7 5 3 4 4 1 2 3 村子联系网络 v1 v5 v2 v4 v3 1 2 7 5 4 1 3 4 3 2 耗时矩阵 穷举法 贪心算法 登录号: 书名: 作者名: 分类号: 出版单位: 出版时间: 价格: 书目卡片 书目文件 按书名 按作者名 按分类号 索引表 线性表 树 …….. …
文档评论(0)