- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
1亿VIP精品文档
相关文档
最近下载
- 试论判例作为民法第1 条之习惯法 【台】吴从周教授 《台大法学论丛》第39卷第2期.pdf
- 民用建筑通用规范GB55031-2022(完整清晰版).pdf
- 【申报表】基于语言建构与运用的“读思达“ 教学法实践研究.doc
- 校园安全稳定工作“日报告、零报告”.docx
- 2024年深圳市高三年级第二次调研考试(二模)数学试卷(含官方答案).pdf
- 甲亢健康教育课件.pptx VIP
- 九下《出师表》文言文对比阅读35篇(含答案).pdf
- 小区智能化弱电系统维护工程报价清单.xls VIP
- 《中国行政制度史》.ppt
- 中国行业标准 NB/T 11118.5-2023煤矿综采工作面机电设备EtherNet/IP通信接口和协议 第5部分:供液系统设备数据表.pdf
文档评论(0)