




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构 数据结构 数据结构 数据 结构 初步认识 数据结构 揭开 数据结构 神秘的面纱 1 什么是数据结构 2 为什么要学数据结构 3 如何学好数据结构 1 什么是数据结构 原始文字1 漆黑的头发没有麻子脚不大周正 演绎1 漆黑的头发 没有麻子 脚不大 周正 演绎2 漆黑的头发没有 麻子 脚不大周正 结论1 文字的不同组合 得到不同的含义 1 什么是数据结构 原始文字2 你 我 给 钱 演绎1 你给我钱 演绎2 我给你钱 结论2 文字的不同序列 得到不同的含义 1 什么是数据结构 趣味短信1 我一般不爱人 趣味短信2 我不爱一般人 趣味短信3 我爱人不一般 1 什么是数据结构 对话一 甲 您好 您贵姓 乙 你谁呀 甲 我52 乙 干嘛 甲 我想把您的电话号码录下来 乙 我姓郭 甲 姓郭 好 谢谢啊 结论1 不同的说话方式体现不同的素质 对话二 甲 您好 我52 我想把您的电话号码录下来 您贵姓 乙 我姓郭 甲 姓郭 好 谢谢啊 结论2 语句的不同序列 得到不同的含义 数据结构 数据 结构 数据结构是相互之间存在着某种逻辑关系的数据元素的集合 1 什么是数据结构 你给我钱 我给你钱 2 为什么要学数据结构 人为什么吃饭 1 饥饿 我们为什么学 数据结构 2 享受 3 交流 学好数据结构 是进行程序设计的前提 也是人生处事的借鉴 1 概念2 算法3 规范 4 提高信息素养5 必须的 3 如何学好 数据结构 温故而知新 可以为师矣 复习学过的知识 可从中获得新的见解与体会了 凭借这点就可以当老师了 学而时习之 不亦说乎 学了知识然后按一定时间去实习它 不也很高兴的吗 3 如何学好 数据结构 学而不思则罔 思而不学则殆 只读书却不思考 就会感到迷茫而无所得 只是空想而不读书 就会让学业陷入困境 知之为知之 不知为不知 是知也 知道的就是知道 不知道就是不知道 这就是智慧啊 3 如何学好 数据结构 上课环节 1 预习2 听讲3 提问 3 如何学好 数据结构 课后环节 1 复习2 整理笔记3 作业4 上机练习 5 交流6 多问问题 充分利用网络资源 数据结构 qq群 82175087 第1章绪论第2章线性表第3章栈和队列第4章串第5章数组 数据结构 第6章树和二叉树第7章图第9章查找第10章排序学时 56 24 1 1数据结构讨论的范畴 1 2基本概念 1 3算法和算法的量度 第1章绪论 1 1数据结构讨论的范畴 一 计算机的主要用途 早期 主要用于数值计算 后来 处理逐渐扩大到非数值计算领域 能处理多种复杂的具有一定结构关系的数据 二 什么是程序 niklauswirth algorithm datastructures programs 程序 算法 数据结构 计算机处理问题的指令集 处理问题的策略 问题的数学模型 例如 计算机对弈 算法 模型 对弈的规则和策略 棋盘及棋盘的格局 数据结构 是进行程序设计的基础 数据结构是一门讨论 描述现实世界实体的数学模型 非数值计算 及其上的操作在计算机中如何表示和实现 的学科 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作的学科 三 数据结构研究的范畴 1 2基本概念 一 数据与数据结构 二 数据类型 三 抽象数据类型 一 数据与数据结构 1 数据是对客观事物的符号表示 是所有能被输入到计算机中 且能被计算机处理的符号的集合 2 数据元素是数据的基本单位 具有完整确定的实际意义 也是数据结构中讨论的基本单位 3 数据项是构成数据元素的项目 是具有独立含义的最小标识单位是数据结构中讨论的最小单位 三者之间的关系数据 数据元素 数据项示例通讯录 个人记录 姓名 年龄 4 数据结构 带结构的数据元素的集合 假设用三个4位的十进制数表示一个含12位数的十进制数 3214 6587 9345 a1 3214 a2 6587 a3 9345 则在数据元素a1 a2和a3之间存在着 次序 关系 a1 a2 a2 a3 3214 6587 9345a1a2a3 6587 3214 9345a2a1a3 例如 又例 在2行3列的二维数组 a1 a2 a3 a4 a5 a6 中六个元素之间存在两个关系 行的次序关系 列的次序关系 row col a1a3a5a2a4a6 a1a2a3a4a5a6 数据结构是相互之间存在着某种逻辑关系的数据元素的集合 结论 不同的 关系 构成不同的 结构 5 数据的逻辑结构和物理结构 集合结构 仅同属一个集合线性结构 一对一 1 1 树形结构 一对多 1 n 网状结构 多对多 m n 非线性 线性 逻辑结构可细分为4类 集合 线性 树 图 指数据元素之间的逻辑关系 即从逻辑关系上描述数据 它与数据的存储无关 是独立于计算机的 解释1 数据的逻辑结构 5 数据的逻辑结构和物理结构 物理结构亦称存储结构 是数据的逻辑结构在计算机存储器内的表示 或映像 它依赖于计算机 存储结构可分为4大类 例 复数3 0 2 3i的两种存储方式 顺序 链式 索引 散列 法1 地址内容 法2 地址内容 2字节 解释2 数据的物理结构 6 数据结构的形式定义 数据结构是一个二元组 data structures d s 其中 d是数据元素的有限集 s是d上关系的有限集 7 数据的存储结构 逻辑结构在存储器中的映象 数据元素 的映象 关系 的映象 1 数据元素的映象方法 用二进制位位串表示数据元素 321 10 501 8 101000001 2 a 101 8 001000001 2 2 关系的映象方法 表示为 x y 顺序映象 以相对的存储位置表示后继关系 链式映象 以附加信息 指针 表示后继关系 yx xy 二 数据类型 数据类型是一个值的集合和定义在此集合上的一组操作的总称 注意 不同类型的变量 其所能取的值的范围不同 所能进行的操作不同 如 9不能作开方运算 数据类型 数集 操作 三 抽象数据类型 abstractdatatype简称adt adt是指一个数学模型以及定义在此数学模型上的一组操作 1 定义 抽象数据类型可以用以下的三元组来表示 adt d r p 数据对象 d上的关系集 d上的操作集 2 抽象数据类型的定义格式 数据对象 d 数据关系 r1 基本操作 adt类型名 adt类型名 例如 抽象数据类型复数的定义 数据对象 d e1 e2 e1 e2 realset 数据关系 r e1是复数的实数部分 e2是虚数部分 adtcomplex 基本操作 assigncomplex destroycomplex z getreal z realpart getimag z imagpart add z1 z2 sum adtcomplex 基本操作 assigncomplex z v1 v2 操作结果 构造复数z 其实部和虚部分别被赋以参数v1和v2的值 destroycomplex z 操作结果 复数z被销毁 getreal z realpart 初始条件 复数已存在 操作结果 用realpart返回复数z的实部值 getimag z imagpart 初始条件 复数已存在 操作结果 用imagpart返回复数z的虚部值 add z1 z2 sum 初始条件 z1 z2是复数 操作结果 用sum返回两个复数z1 z2的和值 假设 z1和z2是上述定义的复数 则add z1 z2 z3 操作的结果 即为用户企求的结果 z3 z1 z2 说明 add z1 z2 z3 具体内容应该由程序设计人员编写 3 抽象数据类型如何表示和实现 抽象数据类型可以通过固有的数据类型如 整型 实型等来表示和实现 1 用c语言中的结构 struct 类型描述 2 用类c语言作为描述工具 3 用c 语言中的类 class 描述 但上机时要用具体语言实现 如c或c 等 1 3算法和算法的衡量 一 算法 二 算法设计的原则 三 算法效率的衡量方法和准则 四 算法的存储空间需求 算法是为了解决某类问题而规定的一个有限长的操作序列 一 算法 1 算法及其特性 一个算法必须满足的重要特性 1 有穷性 对于任意一组合法输入值 在执行有穷步骤之后一定能结束 即 算法中的每个步骤都能在有限时间内完成 2 确定性 对于每种情况下所应执行的操作 在算法中都有确切的规定 使算法的执行者或阅读者都能明确其含义及如何执行 并且在任何条件下 算法都只有一条执行路径 3 可行性 算法中的所有操作都必须足够基本 都可以通过已经实现的基本操作运算有限次实现之 4 有输入 作为算法加工对象的量值 通常体现为算法中的一组变量 有些输入量需要在算法执行过程中输入 而有的算法表面上可以没有输入 实际上已被嵌入算法之中 5 有输出 它是一组与 输入 有确定关系的量值 是算法进行信息加工后得到的结果 这种确定关系即为算法的功能 1 有穷性 2 确定性 3 可行性 4 有输入 5 有输出 注意 算法和程序的关系算法与程序的含义十分相似 但不相同 1 一个程序不一定满足有穷性 可以死循环 2 程序中的指令必须是可执行的 算法中的指令则无此限制 3 一个算法若用计算机语言来书写 则它就可以是一个程序 2 算法的描述和实现 描述 可采用自然语言 数学语言或约定的符号语言 实现 必须借助程序设计语言提供的数据类型及其运算 本课的描述 采用类c语言 二 算法设计的原则 算法设计应考虑达到以下目标 1 正确性 2 可读性 3 健壮性 4 高效率与低存储量需求 1 正确性 首先 算法应当满足以特定的 规格说明 方式给出的需求 c不同于java 其次 对算法是否 正确 的理解可以有以下四个层次 3 程序对于精心选择的 典型 苛刻且带有刁难性的几组输入数据能够得出满足要求的结果 4 程序对于一切合法的输入数据都能得出满足要求的结果 1 程序中不含语法错误 2 程序对于几组输入数据能够得出满足要求的结果 正确 算法的四个层次 2 可读性 算法主要是为了人的阅读与交流 其次才是为计算机执行 因此算法应该易于人的理解 另一方面 晦涩难读的程序易于隐藏较多错误而难以调试 3 健壮性 当输入的数据非法时 算法应当恰当地作出反映或进行相应处理 而不是产生莫名奇妙的输出结果 并且 处理出错的方法不应是中断程序的执行 而应是返回一个表示错误或错误性质的值 以便在更高的抽象层次上进行处理 4 高效率与低存储量需求 效率 算法执行时间存储量 算法执行所需最大存储空间共同点 两者都与问题的规模有关 三 算法效率衡量方法和准则 1 通常有两种衡量算法效率的方法 事后统计法 事前分析估算法 缺点 1 必须执行程序2 其它因素掩盖算法本质 2 和算法执行时间相关的因素 1 算法选用的策略 2 问题的规模 3 编写程序的语言 4 编译程序产生的机器代码的质量 5 计算机执行指令的速度 3 时间复杂度一个特定算法的 运行工作量 的大小 只依赖于问题的规模通常用整数量n表示 或者说 它是问题规模的函数 假如 随着问题规模n的增长 算法执行时间的增长率和f n 的增长率相同 则可记作 t n o f n 称t n 为算法的 渐近 时间复杂度 复杂度高 复杂度低 时间复杂度t n 按数量级递增顺序为 4 如何估算算法的时间复杂度 算法 控制结构 原操作 固有数据类型的操作 算法的执行时间 原操作 i 的执行次数 原操作 i 的执行时间 算法的执行时间与原操作执行次数之和成正比 因此 从算法中选取一种对于所研究的问题来说是基本操作的原操作 以该基本操作在算法中重复执行的次数作为算法运行时间的衡量准则 例一两个矩阵相乘 voidmult inta intb int for mult 基本操作 乘法操作 时间复杂度 o n3 例二选择排序 voidselect sort int a intn 将a中整数序列重新排列成自小至大有序的整数序列 select sort 基本操作 比较 数据元素 操作 时间复杂度 o n2 j i 选择第i个最小元素for k i 1 k n k if a k a j j k for i 0 i n 1 i if j i a j a i 例三起泡排序 voidbubble sort int i bubble sort 基本操作 赋值操作 时间复杂度 o n2 change false change为元素进行交换标志for j 0 ja j 1 a j a j 1 change true 一趟起泡 四 算法的存储空间需求 算法的空间复杂度定义为 表示随着问题规模n的增大 算法运行所需存储量的增长率与g n 的增长率相同 s n o g n 1 输入数据所占空间2 程序本身所占空间3 辅助变量所占空间 数据结构 数据 结构 数据元素 数据项 逻辑结构 物理结构 集合 线性结构 树结构 图结构 线性 非线性 顺序 链式 索引 散列 程序 算法 特性 原则 时间复杂度 正确性 可读性 健壮性 高效性 低存储 有穷性 确定性 可行性 有输入 有输出 o f n 知识回顾 1 熟悉各名词 术语的含义 掌握基本概念 2 理解算法五个要素的确切含义 本章小结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护士技能考试题及答案
- 护理常考试题及答案
- 情景面试题目00及答案
- 安全知识考核试题及答案
- 医学临床试题及答案
- 艺术教育试题及答案
- 海员急救考试题及答案
- 海南联考试题及答案
- 商场定向活动方案
- 消防国考试题及答案
- 小学《科学》期末测评方案
- GB 18613-2006中小型三相异步电动机能效限定值及能效等级
- 2023年湘西市(中小学、幼儿园)教师招聘笔试题库及答案解析
- 公司企业实习鉴定表格
- 锁骨下动脉窃血综合征 (2)PPT
- 大学毕业生离校退宿申请表模板
- 2022年人教八级下英语单词英译汉
- 大班社会《爱发脾气的菲菲》课件
- 【海外华文文学】期末考试复习提纲
- 化工进展稿件编辑、排版体例格式
- 美丽乡村片区内监理规划范本
评论
0/150
提交评论