《第1章绪论2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课堂要求 1、保证良好的纪律 2、不畏困难,积极进取 3、善于思考,掌握正确的学习方法 参考书 严蔚敏, 吴伟民. 数据结构题集(C语言版). 北京: 清华大学出版社, 2007. 严蔚敏, 吴伟民. 《数据结构》算法实现及解析(第二版). 西安: 西安电子科技大学出版社, 2004. 准备知识 1、C语言的数组 2、C语言的指针 3、C语言中的结构体和结构体的指针 4、C语言中函数参数的地址传递(什么情况下使用,如何使用) 第1章 绪 论 1.1 数据结构的概念 1.1.1 为什么要学习数据结构 1.1.2 有关概念和术语 1.1.3 数据结构课程的内容 1.2 数据类型与抽象数据类型 1.3 算法和算法分析 1.3.1 算法特性 1.3.2 算法性能分析与度量 【例1-2】四皇后问题。 学习数据结构的目的 在分析、开发系统与应用软件中要用到的数据结构知识。 如操作系统、编译系统、数据库和人工智能中涉及到:栈和队列、存储管理表、目录树、语法树、索引树、搜索树、散列表、有向图等等。 学习数据结构是为了提高程序设计水平。 我们知道,不论计算机从事哪方面的应用,一般都是由计算机运行程序来实现的,而任何一个程序都是建立和运行在相应的数据结构基础上的。这就要求在做程序设计时,一方面要描述好对应的数据结构,另一方面要设计正确、精确和快速处理数据的算法(或程序)。做到这两点,无疑程序设计水平将会有一个大的提高。 1.1.2 有关概念和术语 1. 数据(data):所有能够被计算机所识别、存储和加工的描述客观事物的符号。 2. 数据元素(data element): 数据的基本单位,也称结点(node)或记录(record)。 3. 数据项(data item): 有独立含义的数据最小单位。 4. 数据结构(data structure):数据元素和数据元素关系的集合。 5. 数据的逻辑结构:抽象反映数据元素的逻辑关系。 6. 数据的存储(物理)结构:指数据的逻辑结构在计算机中的映象,即存储表示 。 1.1.3 数据结构课程的内容 数据结构是一门研究数据组织、存储和运算的一般方法的学科。 1.3 算法和算法分析 1.3.1 算法性能 1. 算法(algorithm):解决某一特定问题的具体步骤的描述,是指令的有限序列。 1.3.2 算法性能分析与度量 1. 两种方法 (1)事后统计方法——用依据该算法编制的程序在计算机上执行所消耗的时间来度量。利用计算机的计时功能,不同算法的程序可以用一组或多组相同的统计数据区分。 缺点:?必须先运行依据算法编制的程序 ?所得时间统计量依赖于硬件、软件等环境因素,掩盖算法本 身的优劣 (2)事前分析估计方法——一个高级语言程序在计算机上运行所消耗的时间取决于: ?依据的算法选用何种策略 ?问题的规模 ?程序语言 ?编译程序产生机器代码质量 ?机器执行指令速度 【例】估算顺序查找的算法的时间复杂度。 int SequenceSearch(int a[],int n,int key) /*在有n个有效数据的数组a中查找检索键key。若查找成功则返回元素的下标,否则返回-1*/ {int i=0; while( in a[i]!=key) i++; if (in) return i; else return -1; } 3. 常见时间复杂度 (1)多项式时间的上限 以下6种计算算法时间的多项式是最常用的,其关系为: O(1)O(log2n)O(n)O(n㏒2n)O(n2)O(n3) (2) 指数时间的上限 O(2n)O(n!) 4. 常见时间复杂度的算法举例 二分查找算法——O(㏒2n)。 对数组进行排序的各种简单算法——O(n2)。 做两个n阶矩阵的乘法运算——O(n3)。 求具有n个元素集合的所有子集的算法——O(2n)。 求具有N个元素的全排列的算法——O(n!)。 练习 假设: z1和z2是上述定义的复数 则 Add(z1, z2, z3) 操作的结果 z3 = z1 + z2 即为用户企求的结果 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd. ADT 有两个重要特征: 数据抽象 用ADT描述程序处理的实体时,强调的是其

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档