- 1、本文档共80页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机软件技术基础3-1数据结构跟算法(概述线性表)
目录 问题 ? 有A、B两段程序同时运行,在某时刻A的运行速度是B的2倍,因此,A的算法复杂度比B低(即效率高)。 例6: w = 11 ; k= 21 ; while ( k 10 ) do @ if w 20 then {w=w-10 ; k--} else w=w+10; 求@语句的频度 分析:对每一合法k值,@句执行2次 则,@句频度F(n)= (21-10)×2=22 3.1.4 算法与分析技术初步 例7: ? x = 87 ; y = 10 ; while ( y 0 ) { @ if ( x 100 ) { x - = 10 ; y - - ; } else x + + ; } 求@语句的频度和整个算法的复杂度。 分析:@句频度F(n)= 15+11×9=114 T(n)=O(1) 3.1.4 算法与分析技术初步 例8: int fact ( int n) // 计算n! { (1) if ( n=1) (2) fact=1; else (3) fact=n*fact(n-1) ; } 计算程序段的时间复杂度 3.1.4 算法与分析技术初步 例9: float p (n) int n; { (1) if (n=1) return(n) ; (2) else return(p(n-1)+p(n-2)); } 计算程序段的时间复杂度 3.1.4 算法与分析技术初步 二、空间复杂度 ? 空间复杂度是指在算法中所需的辅助空间单元而不包括问题的原始数据占用的空间(因为这些单元与算法无关),记作:S(n) ? 时间与空间是一对矛盾。要节约空间往往就要消耗较多时间,反之亦然,而目前由于计算机硬件的发展,一般都有足够的内存空间,因此在分析中着重考虑时间的因素。 3.1.4 算法与分析技术初步 ? 理解数据、数据元素、数据对象、逻辑结构和物理结构、数据类型、数据结构、算法等基本概念。 ? 掌握频度、时间复杂度的计算。 ? 了解空间复杂度。 3.1.5 小结 3.2 线 性 表 3.2.1 线性表的定义和运算 3.2.2 顺序存储线性表 3.2.3 线性链表 3.2.4 向量和链表的比较 3.2.5 小结 3.2.6 作业 3.2.1 线性表的定义和运算 线性表的概念 线性表的逻辑结构是n个数据元素的有限序列: L=(a1, a2 ,...,an) L为线性表,ai(i=1,...,n)是属于某数据对象的元素,n为线性表的长度(n≥0),n=0的表称为空表。 2. 线性表的定义 L=(D,R) 3. 线性表的结构特点 表中的数据元素为同一数据类型 数据元素之间是线性关系 每个元素有且只有一个前趋元素(第一个元素除外),每个元素有且只有一个后继元素(最后一个元素除外) 3.2.1 线性表的定义和运算 有序表与无序表的概念 若线性表中的数据元素相互之间可以比较,且ai≥ai+1 ,i=2,3,...,n(或ai≤ai+1 ,i=1,2,...,n-1),则称该线性表为有序表,否则称为无序表。 线性表的基本运算 插入、删除、查找、排序等。(按位置、按值) 3.2.1 线性表的定义和运算 3.2.2 顺序存储线性表(顺序表) 一、顺序存储结构 ? 用一组地址连续的存储单元存放线性表的数据元素(也称为向量式存储结构) ? 该结构用高级语言中的一维数组类型表示。 例如:可用一维数组A[n]来存储线性表: (a1, a2 ,...,an)。 ? 地址计算: addr(ai)=addr(a1)+(i-1)*L ? 特点:随机存储结构(查找方便)。 例: a1 a2 a3 a4 a5 a6 … 2000H 2001H …… 2005H addr(a4) = addr(a1) + (i-1)×L = 2000H+(4-1)×1=2003H 3.2.2 顺序存储线性表 二、顺序存储结构的插入与删除 1.插入 1)概念:有线性表(a1,a2 ,...,an),长度为n,要在第i-1与第i个元素之间插入一个新元素。使得线性表变为:(a1,a2 ,... ai-1,x, ai,...,an), 长度为n+1。 2)插入过程:将ai至an依次后移一个位置(共移动n-i+1个元素),然后将新元素插入在第i个位置上(合法位置:1=i=n+1)。请参见教材27页图2-3所示。 3.2.2 顺序存储线性表 3)算法描述 int InsertLi
您可能关注的文档
- 机制技术(2-2)零件表面形成跟机床型号.ppt
- 基本操作跟安全操作规程.pdf
- 基础教育报表培训表xxxx0705.doc
- 基地验收申请表pdf(下载)-南通职业大学.pdf
- 基因表达跟蛋白质纯化技术探讨.ppt
- 基于流程图的创作工具.ppt
- 基于转基因技术的基因表达式编程1.pdf
- 吉林大学财会类档案立卷工作规范.doc
- 吉林华桥外国语学院毕业论文工作规范(试行).doc
- 吉林省施工资料表格填写范例.doc
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)