- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 第1章 绪论[资料]
数据结构 ??C++实现;内 容 简 介;第 1 章 绪 论;计 算 机 解 题;数 据 结 构 实 例 1;特点:
每个职工的信息占据一行,所有职工的信息按编号顺序依次排列构成一张表格;
表中每个职工的信息依据编号的大小存在着一种前后关系,这就是我们所说的线性结构;
对它的操作通常是插入某个职工的信息,删除某个职工的信息,更新某个职工的信息,按条件检索某个职工的信息等等。;数 据 结 构 实 例 2; 特点:
l在求解过程中,所处理的数据之间具有层次关系,这是我们所说的树形结构;
l对它的操作有:建立树形结构,输出各层结点内容等等。;数 据 结 构 实 例 3;;什 么 是 数 据 结 构;基 本 概 念; 数据结构(data structure) :数据以及数据元素之间的相互关系。
数据结构分为两大类:线性结构和非线性结构。这两类结构通常又可分为下列四类基本结构
⑴ 集合,结构中的数据元素之间就是“同属于一个集合” ;
⑵ 线性结构,结构中的数据元素之间存在的是一种线性关系,即一对一的关系;
⑶ 树形结构,结构中的元素存在着一对多的关系;
⑷ 图形结构或网状结构,结构中的元素之间存在着多对多的关系。 ;;数据的逻辑结构属于用户视图,是用户所看到的数据结构,是面向问题的。它描述的是数据元素之间的逻辑关系。
数据的物理结构,又称存储结构,是数据的逻辑结构在计算机中的物理存储方式,它属于具体实现的视图,是面向计算机的。
数据的逻辑结构和物理结构是密切相关的两个方面。一般来说,算法设计是基于数据的逻辑结构,而算法实现则基于数据的物理结构。;算法性能与复杂度;算 法 的 描 述 方 式;计算机程序设计语言:
优点:显得清晰、明了,写出的算法一步到位,能由计算机处理。事实上,用程序设计语言来描述算法,就是对算法的实现。
缺点:抽象性差一些,可能会使写算法的人拘泥于计算步骤描述的细节,而忽略算法的实质。此外,必须熟练掌握程序设计语言及其编程技巧。;算 法 的 性 能 标 准;算 法 复 杂 度;算 法 的 时 间 复 杂 度;为了能比较解同一问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题来说是基本运算的操作,即基本操作,以该基本操作重复执行的次数作为算法的时间量度。
算法的时间效率分析通常采用O(f(n))表示法,读作“大O的f(n)” 。
其定义可叙述为T(n)=O(f(n))当且仅当存在正常数c和n0,使得对所有的n,当n≥n0时,都满足T(n)≤cf(n)。换句话说,O(f(n))给出了函数T(n)的上界。;T(n)=O(f(n))表示:随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度(asymptotic time complexity),简称时间复杂度。或者说两者具有相同的数量级。;例 1-14 设a和b是两个已经赋了值的数组,对如下求解了两个NxN矩阵相乘的算法求其时间复杂度。
for (i=0; in; i++)
for (j=0; jn; j++)
{ C[i,j]=0; // 基本操作语句1
for (k=0; kn; k++)
C[i][j]=C[i][j]+a[i][k]*b[k][j];// 基本操作 语句2
}
解: 设基本操作语句的总执行次数为T(n),因为(基本)操作语句“c[i][j]=0”的执行次数为n2。“c[i][j]=C[i][j]+a[i][k]*b[k][j] ”的执行次数为n3,因此T(n)=n2+n3。而T(n)=n2+n3≤cn3,选择c≥2,则T(n)≤cn3=O(n3)。所以该算法的时间复杂度为O(n3) 因为算法的时间复杂度;当算法的时间复杂度T(n)和问题的规模n无关时:
T(n)≤c*1,此时算法的时间复杂度T(n)=O(1),称为常量级;
当算法的时间复杂度T(n)与问题规模n为线性关系时,T(n)≤c*n ,此时算法的时间复杂度T(n)=O(n),称为线性级;
当算法的时间复杂度T(n)和问题的规模n为平方关系时,T(n)≤c*n2,此时算法的时间复杂度T(n)=O(n2),称为平方级。; 例1-15 求出下面三个程序段的时间复杂度。;例1-16 设n为如下算法处理的数据个数,求出其时间复杂度。
for (i=1; i=n; i=2*i)
printf(“i= %d \n” , i) // 基本语句
解:设基本语句的执行次数为T(n),有2T(n)≤n,即有T(n)≤log2n, 因T(n)≤log2n≤c*log2n=O(l
您可能关注的文档
最近下载
- 市东城区东直门中学九年级第一学期第一次月考数学试卷 .pdf VIP
- 雾化吸入护理PPT课件.pptx VIP
- 压力容器金属装卸软管定期检查报告.docx VIP
- 罗迦费因格《谈创造性思维》原文阅读部编人教版九年级语文上册第19课.doc VIP
- 苏教版(2017秋)科学六年级上册科学六年级上册第一单元教材分析.pdf VIP
- 《人工神经网络设计 》 课件全套 第1--10章 绪论 ---人工神经网络应用.pptx
- 江西省九江市都昌县2023-2024学年八年级下学期6月期末物理试题.docx VIP
- DB34T 2918-2017 高速公路沥青路面养护工程施工技术规范.docx VIP
- 2025高级镗工技能鉴定精练考试题库资料及答案(浓缩300题).pdf VIP
- 小学三年级体育教案.pdf
文档评论(0)