- 1、本文档共591页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
数据结构
使用C语言(第5版);第1章绪论;1.1数据结构的基本概念;基本术语;数据的逻辑结构;线性结构;数据的存储结构;顺序存储结构;数据的操作;1.2抽象数据类型和软件构造方法;抽象数据类型使软件设计成为工业化流水线生产的一个中间环节。一方面,根据给出的抽象数据类型的功能定义,负责设计这些抽象数据类型的专门公司设计该抽象数据类型的具体存储结构以及在具体存储结构下各操作的具体实现算法;另一方面,利用已设计实现的抽象数据类型模块,负责设计应用软件的专门公司可以安全、快速、方便的完成该应用软件系统的设计。;1.3算法及其时间复杂度;例1-1:设计一个把存储在数组中的有n个抽象数据元素a0,a1,…,an-1逆置的算法,要求逆置后的新数组b中数据元素序列为an-1,…,a1,a0,并要求原数组中的数据元素值不被改变。;例1-2:设计一个把存储在数组中的有n个抽象数据元素a0,a1,…,an-1就地逆置的算法,即要求逆置后的原数组中数据元素序列改变为an-1,…,a1,a0。;算法满足以下性质:(1)输入性(2)输出性(3)有限性(4)确定性(5)可执行性;程序运行消耗时间的有关因素:;例1-3设数组a和b在前边部分已赋值,求如下两个n阶矩阵相乘运算算法的时间复杂度。;例1-4设n为如下算法处理的数据个数,求如下算法的时间复杂度。
for(i=1;i=n;i=2*i)
couti=i;;例1-5:下边的算法是用冒泡排序法对数字a中的n个整数类型的数据元素(a[0]~a[n-1]),从小到大进行排序,求该算法的时间复杂度。;解:设基本语句的执行次数为f(n),最坏情况下有
f(n)≈n+4*n2/2
因 T(n)=f(n)≈n+2*n2≤c*n2,
其中c为常数,所以该算法的时间复杂度为
T(n)=O(n2)。;例1-6下面的算法是在一个有n个数据元素的数组a中删除第i个位置的数组元素,要求当删除成功时数组元素个数减1,求该算法的时间复杂度。其中数组下标从0至n-1。;解:假设删除任何位置上的数据元素都是等概率的,设Pi为删除第i个位置上数据元素的概率,则有Pi=1/n,设E为删除数组元素的平均次数,则有;例1-7对比在数??元素个数为30000时,冒泡排序算法和快速排序算法的实际耗时。
根据问题的要求,设计测试程序,并在计算机上实际运行。
程序运行结果:冒泡排序:6.00秒;快速排序:0.00秒
程序运行结果说明:系统中的difftime(end,start)函数以秒为单位计时,快速排序的实际耗时少于0.5秒,所以输出显示为0.00秒。程序运行结果说明,当数据元素个数足够大时,理论分析的快速排序算法优于冒泡排序算法的结果,和程序的实际测试结果吻合。;算法的时间复杂度是衡量一个算法好坏的重要指标。一般来说,具有多项式时间复杂度(如O(n)、O(n2)、O(n6)、O(n8)等)的算法,是可接受、可实际使用的算法;而具有指数时间复杂度(如O(2n)、O(nn)、O(n!)等)的算法,是理论上可以计算,但实际上不可计算的问题,通常称作难解的问题。
对于具有多项式时间复杂度的算法,无论数据元素个数多大(只要是有限的数值),算法都可以在有限的时间内运行完成;而对于难解的问题,当n足够小时,算法可以在有限的时间内运行完成,当n比较大时,其运行时间将是一个天文数字!;习题1-1,1-2
习题1-13,1-14,1-15;第2章线性表;2.1线性表抽象数据类型;2.线性表抽象数据类型;2.2线性表的顺序表示和实现;a0;2.顺序表操作的实现;(3)插入数据元素ListInsert(L,i,x)
intListInsert(SeqList*L,inti,DataTypex)
{intj;
for(j=L-size;ji;j--)L-list[j]=L-list[j-1];
/*依次后移*/
? L-list[i]=x; /*插入x*/
您可能关注的文档
- 室内装饰工程概预算与招投标报价-全套PPT课件.pptx
- 数据标注实用教程-全套PPT课件.pptx
- 数据采集与处理技术-全套PPT课件.pptx
- 数据分析与数据可视化实战-全套PPT课件.pptx
- 数据结构(C语言版·第3版)全套PPT课件.pptx
- 数据结构(Java版)全套PPT课件.pptx
- 数据结构——C语言描述(第5版)全套PPT课件.pptx
- 数据结构-全套PPT课件.pptx
- 数据结构——使用C语言(第4版)全套PPT课件.pptx
- 数据结构与算法(Java版·第5版)全套PPT课件.pptx
- 高校教师资格证之《高等教育法规》题库检测模拟题及1套参考答案详解.docx
- 全球食品饮料行业包装印刷行业市场分析与竞争策略报告.docx
- 高校教师资格证之《高等教育法规》题库有完整答案详解.docx
- 工业互联网平台AR交互技术在工业设计领域的应用创新与挑战2025年报告.docx
- 2025年游戏行业用户付费趋势与策略分析报告.docx
- 文化遗产数字化保护与利用的区块链技术应用案例分析.docx
- 高校教师资格证之《高等教育法规》题库整理复习资料附答案详解(能力提升).docx
- 拼多多2025年下沉市场农村电商市场政策影响分析报告.docx
- 高校教师资格证之《高等教育法规》题库整理复习资料附答案详解(能力提升).docx
- 绿色供应链管理在制造业中的绿色供应链创新与趋势分析报告.docx
文档评论(0)