算法与数据结构知识点总结.docx

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法与数据结构知识点总结 PAGE39 / NUMPAGES52 算法与数据结构知识点总结 ?学习目标 1.熟练掌握基本的数据结构 2.理解相关操作的算法实现 3.掌握算法的复杂度分析方法 4.领会从数据结构的设计和实现角度优化解决实际问题的思想 ?相关术语&基础知识 1.数据、数据元素 数据:对客观事物的符号表示,所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素:组成数据的、具有意义的基本单位,计算机中通常作为整体处理。 2.数据项 组成数据的不可分割的最小单位 3.数据对象 性质相同的数据元素的集合,是数据的子集 4.逻辑结构 数据对象中数据元素之间的逻辑关系;是从操作对象抽象出来的数学模型 5.物理结构(存储结构) 数据元素逻辑关系在计算机中的表示(映像);包括数据元素的表示和逻辑关系的表示;关系到数据操作的实现 6.数据类型 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 7.抽象数据类型(ADT) 是指一个数据模型以及定义在该模型上的一组操作。 三要素:数据元素、逻辑关系、操作 8.算法的设计原则 正确性、可读性、健壮性、高效率与低存储量 9.算法效率的度量 10.常见结构的时间复杂度★ (1)顺序结构 O(1) (2)分支结构 O(1) (3)循环结构的时间复杂度 = 循环体内语句的频度(重复执行次数) 11.时间复杂度的计算 时间复杂度的简化求解步骤 step 1. 定位最深层循环 step 2. 由内向外逐层计算循环体的执行频度 step 3. 只保留最高阶项 step 4. 去掉最高阶项系数 得到的结果即为时间复杂度的大O阶。 12.时间复杂度的大小关系★ 13.影响空间复杂度的因素 (1)程序本身所占空间 (2)输入数据所占空间 (3)辅助变量所占空间 若输入数据所占空间只取决于问题本身,和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间。 ?对知识掌握的四种程度 1.了解:选择题 2.理解:知道原理,题里可能有拐弯的地方 3.掌握:算法语句填空 4.熟练掌握:整...个...算...法... PS:以下,“要求”会展开详细内容;若无必要,“考点”不展开详细内容。 一、线性表 ?考点: 1.线性表的逻辑结构和各种存储表示方法 2.定义在逻辑结构上的各种基本运算(知道名字即可) InitList(*L) 操作结果:初始化一个空的线性表L。 DestroyList(*L) 初始条件:线性表L 已经存在。 操作结果:销毁线性表L。 ClearList(*L) 初始条件:线性表L 已经存在。 操作结果:将L 清空为空表。 ListEmpty(L) 初始条件:线性表L 已经存在。 操作结果:若L 为空返回true,否则返回false。 ListLength(L) 初始条件:线性表L 已经存在。 操作结果:返回线性表L 的元素个数。 GetElem(L,i,*e) 初始条件:线性表L 已经存在,i∈[1, ListLength ( L )]。 操作结果:将L 中第i 个位置的元素返回给e。 LocateElem(L,e,compare ( )) 初始条件:线性表L 已经存在。 操作结果:在L 中查找与给定值e 满足关系compare ( ) 的元素,无参数compare()默认为相等关系,找到后返回其第一个元素的位序,查找失败返回0。 ListInsert(L,i,e) 初始条件:线性表L 已经存在,i∈[1, ListLength ( L )+1]。 操作结果:在L 中第i 个位置插入新元素e,L 的长度加1。 ListDelete(L,i,*e) 初始条件:线性表L 已经存在且非空,i∈[1, ListLength ( L )]。 操作结果:删除L 中第i 个位置元素,并用e 返回其值,L 的长度减1。 3.在各种存储结构上如何实现这些基本运算 4.各种基本运算的时间复杂性 ?要求: 1.理解两种存储结构各自的特点、优缺点、适用范围 2.熟练掌握顺序表和单链表上建表、插入、删除、查找操作的算法实现及相关的复杂度分析 ⑴顺序表 ①建表 Status ListCreat(SqList * L) /*从屏幕逐位读入数据生成顺序表*/ { int n , i; printf("请输入顺序表L 的数据个数:\n") ; scanf("%d", &n) ; if (n > MAXSIZE) { printf("\n 数据个数过长,请不要超过%d!\n",MAXSIZE); return ERROR; } else if(n<0) { printf("\n输入不合法\n"); return ERROR; } for(i=0 ; i < n ; i

文档评论(0)

学习让人进步 + 关注
实名认证
内容提供者

活到老,学到老!知识无价!

1亿VIP精品文档

相关文档