ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:17.87KB ,
资源ID:10901910      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10901910.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(算法与数据结构15章 课后习题.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

算法与数据结构15章 课后习题.docx

1、算法与数据结构15章 课后习题第一章绪论习题练习答案1.1 简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。 数据:指能够被计算机识别、存储和加工处理的信息载体。 数据元素:就是数据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。数据元素有时可以由若干数据项组成。课后答案网 数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。通常数据类型可以看作是程序设计语言中已实现的数据结构。 数据结构:指的是数据之间的相互关系,即数据的组织形式。一般包括三个方面的内容:数据的逻辑结构、存储结构和数据的运算。 逻辑结构:指数据元素之间的逻辑

2、关系。 存储结构:数据元素及其关系在计算机存储器内的表示,称为数据的存储结构. 线性结构:数据逻辑结构中的一类。它的特征是若结构为非空集,则该结构有且只有一个开始结点和一个终端结点,并且所有结点都有且只有一个直接前趋和一个直接后继。线性表就是一个典型的线性结构。栈、队列、串等都是线性结构。 非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前趋和直接后继。数组、广义表、树和图等数据结构都是非线性结构。1.2 试举一个数据结构的例子、叙述其逻辑结构、存储结构、运算三个方面的内容。答:例如有一张学生体检情况登记表,记录了一个班的学生的身高、体重等各项体检信息。这张登记表中,

3、每个学生的各项体检信息排在一行上。这个表就是一个数据结构。每个记录(有姓名,学号,身高和体重等字段)就是一个结点,对于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),其他的结点则各有一个也只有一个直接前趋和直接后继(它的前面和后面均有且只有一个记录)。这几个关系就确定了这个表的逻辑结构是线性结构。这个表中的数据如何存储到计算机里,并且如何表示数据元素之间的关系呢? 即用一片连续的内存单元来存放这些记录(如用数组表示)还是随机存放各结点数据再用指针进行链接呢? 这就是存储结构的问题。课后答案网 在这个表的某种存储结构基础上,可实现对这张表中的记录进行查询,修改,删

4、除等操作。对这个表可以进行哪些操作以及如何实现这些操作就是数据的运算问题了。1.3 常用的存储表示方法有哪几种?答:常用的存储表示方法有四种: 顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构,通常借助程序语言的数组描述。 链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示。由此得到的存储表示称为链式存储结构,通常借助于程序语言的指针类型描述。 索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。组成索引表的索引项由结点的关键字和地

5、址组成。若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引(Dense Index)。若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引。 散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。1.4 设三个函数f,g,h分别为f(n)=100n3+n2+1000 , g(n)=25n3+5000n2 , h(n)=n1.5+5000nlgn请判断下列关系是否成立:(1) f(n)=O(g(n)(2) g(n)=O(f(n)(3) h(n)=O(n1.5)(4) h(n)=O(nlgn)分析:数学符号O的严格的数学定义:若T(n)和f(n)是定义在正整数集合上的两个

6、函数,则T(n)=O(f(n)表示存在正的常数C 和n0,使得当nn0 时都满足0T(n)Cf(n)。通俗地说,就是当n时,f(n)的函数值增长速度与T(n)的增长速度同阶。一般,一课后答案网 个函数的增长速度与该函数的最高次阶同阶。即:O(f(n)=n3O(g(n)=n3O(h(n)=n1.5所以答案为:答:(1)成立。(2)成立。(3)成立。(4)不成立。1.5 设有两个算法在同一机器上运行,其执行时间分别为100n2和2n,要使前者快于后者,n至少要多大?分析:要使前者快于后者,即前者的时间消耗低于后者,即:100n22n求解上式,可得答:n=151.6 设n为正整数,利用大O记号,将下

7、列程序段的执行时间表示为n的函数。(1) i=1; k=0;while(in) k=k+10*i;i+;分析:i=1; /1k=0; /1while(in) /n课后答案网 k=k+10*i; /n-1i+; /n-1由以上列出的各语句的频度,可得该程序段的时间消耗:T(n)=1+1+n+(n-1)+(n-1)=3n可表示为T(n)=O(n)(2) i=0; k=0;dok=k+10*i; i+;while(in);分析:i=0; /1k=0; /1do /nk=k+10*i; /ni+; /nwhile(in);/n由以上列出的各语句的频度,可得该程序段的时间消耗:T(n)=1+1+n+n+

8、n+n=4n+2可表示为T(n)=O(n)(3) i=1; j=0;while(i+jj) j+;else i+;课后答案网 分析:通过分析以上程序段,可将i+j 看成一个控制循环次数的变量,且每执行一次循环,i+j的值加1。该程序段的主要时间消耗是while 循环,而while 循环共做了n 次,所以该程序段的执行时间为:T(n)=O(n)(4)x=n; / n1while (x=(y+1)*(y+1)y+;分析:由x=n 且x 的值在程序中不变,又while 的循环条件(x=(y+1)*(y+1)可知:当(y+1)*(y+1)刚超过n 的值时退出循环。由(y+1)*(y+1)n 得:y0)

9、if(x100)x=x-10;y-;else x+;分析:x=91; /1y=100; /1while(y0) /1101if(x100) /1100 x=x-10; /100y-; /100课后答案网 elsex+; /1000以上程序段右侧列出了执行次数。该程序段的执行时间为:T(n)=O(1)1.7 算法的时间复杂度仅与问题的规模相关吗?答:算法的时间复杂度不仅与问题的规模相关,还与输入实例中的初始状态有关。但在最坏的情况下,其时间复杂度就是只与求解问题的规模相关的。我们在讨论时间复杂度时,一般就是以最坏情况下的时间复杂度为准的。1.8 按增长率由小至大的顺序排列下列各函数:2100,

10、(3/2)n,(2/3)n, nn ,n0.5 , n! ,2n ,lgn ,nlgn, n(3/2)答:常见的时间复杂度按数量级递增排列,依次为:常数阶0(1)、对数阶0(log2n)、线性阶0(n)、线性对数阶0(nlog2n)、平方阶0(n2)、立方阶0(n3)、k 次方阶0(nk)、指数阶0(2n)。先将题中的函数分成如下几类:常数阶:2100对数阶:lgnK 次方阶:n0.5、n(3/2)指数阶(按指数由小到大排):nlgn、(3/2)n、2n、n!、nn注意:(2/3)n 由于底数小于1,所以是一个递减函数,其数量级应小于常数阶。根据以上分析按增长率由小至大的顺序可排列如下:(2/

11、3)n 2100 lgn n0.5 n(3/2) nlgn (3/2)n 2n n! nn1.9 有时为了比较两个同数量级算法的优劣,须突出主项的常数因子,而将低次项用大O记号表示。例如,设T1(n)=1.39nlgn+100n+256=1.39nlgn+O(n), T2(n)=2.0nlgn-2n=2.0lgn+O(n), 这两个式子表示,当n足够大时T1(n)优于T2(n),因为前者的常数因子小于后者。请用此方法表示下列函数,并指出当n 足够大时,哪一个较优,哪一个较劣?课后答案网 函数大O表示优劣(1) T1(n)=5n2-3n+60lgn 5n2+O(n) 较差(2) T2(n)=3n2+1000n+3lgn 3n2+O(n) 其次(3) T3(n)=8n2+3lgn 8n2+O(lgn) 最差(4) T4(n)=1.5n2+6000nlgn 1.5n2+O(nlgn) 最优

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1