版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1游戏案例分析2课程考核总学时:48学时考核方式:阶段性考核成绩比例:平时15%,实验25%,期末60%3课程主要内容简介主要内容:线性表链表栈队列二叉树设计模式泛型编程、模板、STL容器、向量与迭代器4绪论主要内容:什么是数据结构根本概念和术语算法和算法分析5数据结构:是指相互之间具有(存在)一定联系(关系)的数据元素的集合。元素之间的相互联系(关系)称为〔逻辑〕结构。数据元素之间的逻辑结构有4种根本类型,如下所示。①集合:结构中的数据元素除了“同属于一个集合〞外,没有其它关系。②线性结构:结构中的数据元素之间存在一对一的关系。③树型结构:结构中的数据元素之间存在一对多的关系。④图状结构或网状结构:结构中的数据元素之间存在多对多的关系。数据结构的概念6集合线性树图7逻辑结构与物理结构数据元素之间的关系可以是元素之间代表某种含义的自然关系,也可以是为处理问题方便而人为定义的关系,这种“关系〞称为数据元素之间的逻辑关系,相应的结构称为逻辑结构。数据结构在计算机中的表示〔又称映像〕称为数据的物理结构,又称存储结构。8数据结构的存储方式
数据结构在计算机内存中的存储包括数据元素的存储和元素之间的关系的表示。元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像。由此得出两种不同的存储结构:顺序存储结构和链式存储结构。顺序映像的特点:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑结构(关系)。
非顺序映像的特点:在每一个数据元素中增加一个存放另一个元素地址的指针(pointer),用该指针来表示数据元素之间的逻辑结构(关系)。9
数据的逻辑结构和物理结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。在C语言中,用一维数组表示顺序存储结构;用结构体类型表示链式存储结构。例:设有数据集合A={3.0,2.3,5.0,-8.5,11.0},两种不同的存储结构。顺序结构:数据元素存放的地址是连续的;链式结构:数据元素存放的地址是否连续没有要求。可否画出示意图?10数据结构的三个组成局部:逻辑结构:数据元素之间逻辑关系的描述。存储结构:数据元素在计算机中的存储。数据操作:对数据要进行的运算。
11数据的逻辑结构非线性结构集合图状结构有向图无向图树形结构一般树二叉树线性结构一般线性表线性表推广广义表数组串受限线性表栈和队列数据逻辑结构层次关系图线性表树图顺序存储结构链式存储结构复合存储结构逻辑结构物理结构12算法:是对特定问题求解方法(步骤)的一种描述。算法和算法分析13算法的五个重要特性①有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。②确定性:算法中每一条指令必须有确切的含义。不存在二义性。③可行性:一个算法是能行的。即算法描述的操作都可以通过已经实现的根本运算执行有限次来实现。④输入:一个算法有零个或多个输入。⑤输出:一个算法有一个或多个输出。14设计一个好的算法应考虑到达以下目标:①正确性:算法应满足具体问题的需求。②可读性:算法应容易供人阅读和交流。可读性好的算法有助于对算法的理解和修改。③健壮性:算法应具有容错处理。当输入非法或错误数据时,算法应能适当地作出反响或进行处理,而不会产生莫名其妙的输出结果。④效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。一般地,这两者与问题的规模有关。算法设计的要求15
算法执行时间需通过依据该算法编制的程序在计算机上运行所消耗的时间来度量。其方法通常有两种:事后统计:计算机内部进行执行时间和实际占用空间的统计。
缺陷:必须先运行依据算法编制的程序;依赖软硬件环境,容易掩盖算法本身的优劣;没有实际价值。事前分析:求出该算法的一个时间界限函数。算法效率的度量16与此相关的因素有:依据算法选用何种策略;问题的规模;程序设计的语言;编译程序所产生的机器代码的质量;机器执行指令的速度;撇开软硬件等有关部门因素,可以认为一个特定算法“运行工作量〞的大小,只依赖于问题的规模〔通常用n表示〕,或者说,它是问题规模的函数。17算法分析应用举例算法中根本操作重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作:T(n)=O(f(n)),称作算法的渐近时间复杂度,简称时间复杂度。一般地,常用最深层循环内的语句中的原操作的执行频度(重复执行的次数)来表示。18表示时间复杂度的阶有:O(1):常量阶O(n):线性阶O(㏒n):对数阶O(2n):指数阶O(n2):平方阶O(n㏒n):线性对数阶O(nk):k≥2,k次方阶〔多项式阶〕19例1两个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][j];}由于是一个三重循环,每个循环从1到n,那么总次数为:n×n×n=n3时间复杂度为T(n)=O(n3)20例2{++x;s=0;}将x自增看成是根本操作,那么语句频度为1,即时间复杂度为O(1)。如果将s=0也看成是根本操作,那么语句频度为2,其时间复杂度仍为O(1),即常量阶。21例3for(i=1;i<=n;++i)
{++x;s+=x;}语句频度为:2n,其时间复杂度为:O(n),即为线性阶。22例4for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
{++x;s+=x;}
语句频度为:2n*n=2n2
,其时间复杂度为:O(n2)
,即为平方阶。23定理:假设A(n)=amnm+am-1nm-1+…+a1n+a0是一个m次多项式,那么A(n)=O(nm)例5for(i=2;i<=n;++i)for(j=2;j<=i-1;++j){++x;a[i,j]=x;}语句频度为:1+2+3+…+n-2=(1+n-2)×(n-2)/2=(n-1)(n-2)/2=1/2n2-3/2n+1∴时间复杂度为O(n2),即此算法的时间复杂度为平方阶。一个算法时间为O(1)的算法,它的根本运算执行的次数是固定的。因此,总的时间由一个常数〔即零次多项式〕来限界。而一个时间为O(n2)的算法那么由一个二次多项式来限界。24以下六种计算算法时间的多项式是最常用的。其关系为:O(1)<O(㏒n)<O(n)<O(n㏒n)<O(n2)<O(n3)指数时间的关系为:O(2n)<O(n!)<O(nn)当n取得很大时,指数时间算法和多项式时间算法在所需时间上非常悬殊。因此,只要有人能将现有指数时间算法中的任何一个算法化简为多项式时间算法,那就取得了一个伟大的成就。有的情况下,算法中根本操作重复执行的次数还随问题的输入数据集不同而不同。25例1:素数的判断算法。voidprime(intn)/*n是一个正整数*/{inti=2;while((n%i)!=0&&i*1.0<sqrt(n))i++;if(i*1.0>sqrt(n))printf(“&d是一个素数\n〞,n);elseprintf(“&d不是一个素数\n〞,n);}嵌套的最深层语句是i++;其频度由条件((n%i)!=0&&i*1.0<sqrt(n))决定,显然i*1.0<sqrt(n),时间复杂度O(n1/2)。26例2:冒泡排序法。Voidbubble_sort(inta[],intn){change=false;for(i=n-1;change=TURE;i>1&&change;--i)for(j=0;j<i;++j)if(a[j]>a[j+1]){a[j]←→a[j+1];change=TURE;}}
最好情况:0次最坏情况:1+2+3+⋯+n-1=n(n-1)/2
平均时间复杂度为:O(n2)27算法的空间分析
空间复杂度:是指算法编写成程序后,在计算机中运行时所需存储空间大小的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版工业厂房设施定期检修合同3篇
- 2025版信托资金借款合同模板与合同签订流程解读8篇
- 2025年随车吊租赁与港口货物装卸服务合同3篇
- 2025年度商业地产出售代理合同标的物市场分析报告3篇
- 2025年度绿色环保汽车制造合同3篇
- 2024著作权集体管理合同
- 2025版苗圃场租赁及苗木培育技术支持合同4篇
- 2025年度商业综合体场地租赁合同范本12篇
- 二零二五年房产赎楼风险规避合同范本3篇
- 2025年度个人反担保保证书(家庭装修)3篇
- 2025年温州市城发集团招聘笔试参考题库含答案解析
- 2025版高考物理复习知识清单
- 除数是两位数的除法练习题(84道)
- 2025年度安全检查计划
- 2024年度工作总结与计划标准版本(2篇)
- 《光伏发电工程工程量清单计价规范》
- (完整版)保证药品信息来源合法、真实、安全的管理措施、情况说明及相关证明
- 营销专员绩效考核指标
- 毕业论文-山东省农产品出口贸易的现状及对策研究
- 音乐思政课特色课程设计
- 2023年四川省乐山市中考数学试卷
评论
0/150
提交评论