- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 讲课教师:杜雅娟 Emil:duyajuan1025@163.com 电话QQ:295858698 课程介绍 数据结构课程教学目标 使学生学会分析数据对象的特征,掌握数据组织方法和计算机中的表示方法,以便为应用所涉及数据选择适当的数据结构、存储结构和算法,初步掌握算法空间分析的技巧,培养良好的程序设计技能。 学习数据结构的学习方法 学习数据结构必须经过大量的实践,在实践中体会构造思维方法,掌握数据组织和程序设计的技术。 要求: (1)独立完成作业 (2)独立完成实验任务 考核要求:平时作业10% 实验成绩20% 期末卷面分数70% 为什么要学习数据结构? “数据结构”学科形成和发展的背景 形成阶段: 60年代初期,“数据结构”有关的内容散见于操作系统、编译原理和表处理语言等课程。1968年,“数据结构”被列入美国一些大学计算机科学系的教学计划。 发展阶段: 数据结构的概念不断扩充,包括了网络、集合代数论、关系等“离散数学结构”的内容。 70年代后期,我国高校陆续开设该课程。如今已成熟 或者说,数据结构是相互之间存在着某种逻辑关系的数据元素的集合。 如何描述存储结构? 那么,我们仅用高级编程语言中提供的数据类型描述存储结构就可以了吗? 1.3 抽象数据类型的表示与实现 一、介绍C/C++命令 二、抽象数据类型的表示和实现 例8 抽象数据类型三元组(Trip1et)的表示和实现。 //--------采用动态分配的顺序存储结构 typedef ElemType *Triplet; //Triplet类型是ElemType类型的指针, //存放ElemType类型的地址。 ? 1.4 算法和算法分析 1.4.1 算法 1.4.2 算法设计的要求 1.4.3 算法效率的度量 1.4.3 算法效率的度量 1.4.4 算法的存储空间需求 1.4.1 算法 算法(Algorithm) 是对特定问题求解步骤的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作;此外,一个算法还具有下列五个重要特性。 ???? 算法的五个重要特性 (1)有穷性---执行了有限条指令后一定要终止。 例9(1) (2)确定性(无二义)---算法的每一步操作都必须有确切定义,不得有任何歧义性。 (3)可行性---一个算法是能行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。 ??? 例9(2) (4)输入数据---一个算法有n(n=0)个初始数据的输入。 (5)输出数据---一个算法有一个或多个与输入有某种关系的有效信息的输出。 思考:算法与程序有何区别? 算法与程序的区别 程序中的指令必须是机器可执行的,而算法中的指令则无此限制。 算法代表了对问题的求解过程,而程序则是算法在计算机上的实现。算法用特定的程序设计语言来描述,就成了程序。 1.4.2 算法设计的要求 通常设计一个“好”的算法应考虑达到以下目标: (1)正确性 (Correctness) p14 (2)可读性(Readability)? (3)健壮性(Robustness)? (4)效率与低存储量需求 1.4.3 算法效率的度量 度量一个程序的执行时间通常有两种方法: (1)事后统计的方法(算法编为程序后) (2)事前分析估算的方法 P14 另一种更可行也更常用的办法是讨论算法在最坏情况下的时间复杂度,即分析最坏情况以估算算法执行时间的一个上界。 除特别指明外,以后讨论的时间复杂度均指最坏情况下的时间复杂度。 例:两个N×N矩阵相乘的算法如下 for(i = 1;i = n;++i) for(j = 1;j = n;++j){ c[i][j] = 0; for(k = = 1;k = n;++k) c[i][j] + = a[i][k] * b[k][i];} example(n) { if (n == 1) return for i = 1 to n x = x + 1 example(n/2) } 教学要求 本章结束 (1)预定义常量和类型: //函数结果状态代码 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -
文档评论(0)