中南大学数据结构与算法

合集下载

中南大学复试科目

中南大学复试科目
081901采矿工程
采矿专业综合
《金属矿山地下开采》解世俊,冶金工业出版社
081903安全技术及工程
安全专业综合
《企业安全管理知识问答》李孜军、吴超编,中国劳动社会保障业出版社2004
《公共安全知识读本》吴超、吴宗之编,化学工业出版社2006
081922安全管理工程
081921地下空间资源科学与工程
自动控制原理(25%)
《自动控制原理》胡寿松,国防工业出版社
055资源与安全工程学院
020106人口、资源与环境经济学
人口、资源专业综合
《矿业经济学》,陈建宏,中南大学出版社
080104工程力学
工程力学专业综合
081401岩土工程
岩土工程专业综合
《岩石力学与工程》蔡美峰,科学出版社
《土力学与地基基础》王雅丽,重庆大学出版社
②《轨道工程》陈秀方主编,中国建筑工业出版社,2005年
③《路基路面工程》(第二版)邓学均编,人民交通出版社,2006年11月
082322城市轨道交通工程
050地学与环境工程学院
081803地质工程
土力学
土力学与地基基础
081803地质工程
钻探工程
钻探与钻井工程
070503地图学与地理信息系统
GIS专业综合
047软件学院
081280软件工程
《软件工程》
《现代软件工程》,陈松乔主编,清华大学出版社
/panda/多年以后,你未娶,我未嫁,我就考虑下嫁给你。048土木建筑学院
080102固体力学
工程力学
①《工程力学》单辉祖、谢传锋合编,高等教育出版社,2004
②《工程力学》陈长征等编,科学出版社,2002
③《结构力学》李廉锟主编,高等教育出版社

中南大学数据结构与算法第7章图课后作业答案分解

中南大学数据结构与算法第7章图课后作业答案分解

第7章图(基础知识)习题练习答案7.1 在图7.23所示的各无向图中:(1)找出所有的简单环。

(2)哪些图是连通图?对非连通图给出其连通分量。

(3)哪些图是自由树(或森林)?答:(1)所有的简单环:(同一个环可以任一顶点作为起点)(a)1231(b)无(c)1231、2342、12341(d)无(2)连通图:(a)、(c)、(d)是连通图,(b)不是连通图,因为从1到2没有路径。

具体连通分量为:(3)自由树(森林):自由树是指没有确定根的树,无回路的连通图称为自由树:(a)不是自由树,因为有回路。

(b)是自由森林,其两个连通分量为两棵自由树。

(c)不是自由树。

(d)是自由树。

7.2 在图7.24(下图)所示的有向图中:(1) 该图是强连通的吗? 若不是,则给出其强连通分量。

(2) 请给出所有的简单路径及有向环。

(3) 请给出每个顶点的度,入度和出度。

(4) 请给出其邻接表、邻接矩阵及逆邻接表。

答:(1)该图是强连通的,所谓强连通是指有向图中任意顶点都存在到其他各顶点的路径。

(2)简单路径是指在一条路径上只有起点和终点可以相同的路径:有v1v2、v2v3、v3v1、v1v4、v4v3、v1v2v3、v2v3v1、v3v1v2、v1v4v3、v4v3v1、v3v1v4、另包括所有有向环,有向环如下:v1v2v3v1、v1v4v3v1(这两个有向环可以任一顶点作为起点和终点)(3)每个顶点的度、入度和出度:D(v1)=3ID(v1)=1OD(v1)=2D(v2)=2 ID(v2)=1OD(v2)=1D(v3)=3 ID(v3)=2OD(v3)=1D(v4)=2 ID(v4)=1OD(v4)=1(4)邻接表:(注意边表中邻接点域的值是顶点的序号,这里顶点的序号是顶点的下标值-1)vertex firstedge next┌─┬─┐┌─┬─┐┌─┬─┐0│v1│─→│ 1│─→│ 3│∧│├─┼─┤├─┼─┤└─┴─┘1│v2│─→│ 2│∧│├─┼─┤├─┼─┤2│v3│─→│ 0│∧│├─┼─┤├─┼─┤3│v4│─→│ 2│∧│└─┴─┘└─┴─┘逆邻接表:┌─┬─┐┌─┬─┐0│v1│─→│ 2│∧│├─┼─┤├─┼─┤1│v2│─→│ 0│∧│├─┼─┤├─┼─┤┌─┬─┐2│v3│─→│ 1│─→│ 3│∧│├─┼─┤├─┼─┤└─┴─┘3│v4│─→│ 0│∧│└─┴─┘└─┴─┘邻接矩阵:0 1 0 10 0 1 01 0 0 00 0 1 07.3 假设图的顶点是A,B...,请根据下述的邻接矩阵画出相应的无向图或有向图。

数据结构与算法分析c语言描述中文答案

数据结构与算法分析c语言描述中文答案

数据结构与算法分析c语言描述中文答案一、引言数据结构与算法是计算机科学中非常重要的基础知识,它们为解决实际问题提供了有效的工具和方法。

本文将以C语言描述中文的方式,介绍数据结构与算法分析的基本概念和原理。

二、数据结构1. 数组数组是在内存中连续存储相同类型的数据元素的集合。

在C语言中,可以通过定义数组类型、声明数组变量以及对数组进行操作来实现。

2. 链表链表是一种动态数据结构,它由一系列的节点组成,每个节点包含了数据和一个指向下一个节点的指针。

链表可以是单链表、双链表或循环链表等多种形式。

3. 栈栈是一种遵循“先进后出”(Last-In-First-Out,LIFO)原则的数据结构。

在C语言中,可以通过数组或链表实现栈,同时实现入栈和出栈操作。

4. 队列队列是一种遵循“先进先出”(First-In-First-Out,FIFO)原则的数据结构。

在C语言中,可以通过数组或链表实现队列,同时实现入队和出队操作。

5. 树树是一种非线性的数据结构,它由节点和边组成。

每个节点可以有多个子节点,其中一个节点被称为根节点。

在C语言中,可以通过定义结构体和指针的方式来实现树的表示和操作。

6. 图图是由顶点和边组成的数据结构,它可以用来表示各种实际问题,如社交网络、路网等。

在C语言中,可以通过邻接矩阵或邻接表的方式来表示图,并实现图的遍历和查找等操作。

三、算法分析1. 时间复杂度时间复杂度是用来衡量算法的执行时间随着问题规模增长的趋势。

常见的时间复杂度有O(1)、O(log n)、O(n)、O(n^2)等,其中O表示“量级”。

2. 空间复杂度空间复杂度是用来衡量算法的执行所需的额外内存空间随着问题规模增长的趋势。

常见的空间复杂度有O(1)、O(n)等。

3. 排序算法排序算法是对一组数据按照特定规则进行排序的算法。

常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序等,它们的时间复杂度和空间复杂度各不相同。

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案

《数据结构与算法》习题与答案(解答仅供参考)一、名词解释:1. 数据结构:数据结构是计算机存储、组织数据的方式,它不仅包括数据的逻辑结构(如线性结构、树形结构、图状结构等),还包括物理结构(如顺序存储、链式存储等)。

它是算法设计与分析的基础,对程序的效率和功能实现有直接影响。

2. 栈:栈是一种特殊的线性表,其操作遵循“后进先出”(Last In First Out, LIFO)原则。

在栈中,允许进行的操作主要有两种:压栈(Push),将元素添加到栈顶;弹栈(Pop),将栈顶元素移除。

3. 队列:队列是一种先进先出(First In First Out, FIFO)的数据结构,允许在其一端插入元素(称为入队),而在另一端删除元素(称为出队)。

常见的实现方式有顺序队列和循环队列。

4. 二叉排序树(又称二叉查找树):二叉排序树是一种二叉树,其每个节点的左子树中的所有节点的值都小于该节点的值,而右子树中的所有节点的值都大于该节点的值。

这种特性使得能在O(log n)的时间复杂度内完成搜索、插入和删除操作。

5. 图:图是一种非线性数据结构,由顶点(Vertex)和边(Edge)组成,用于表示对象之间的多种关系。

根据边是否有方向,可分为有向图和无向图;根据是否存在环路,又可分为有环图和无环图。

二、填空题:1. 在一个长度为n的顺序表中,插入一个新元素平均需要移动______个元素。

答案:(n/2)2. 哈希表利用______函数来确定元素的存储位置,通过解决哈希冲突以达到快速查找的目的。

答案:哈希(Hash)3. ______是最小生成树的一种算法,采用贪心策略,每次都选择当前未加入生成树且连接两个未连通集合的最小权重边。

答案:Prim算法4. 在深度优先搜索(DFS)过程中,使用______数据结构来记录已经被访问过的顶点,防止重复访问。

答案:栈或标记数组5. 快速排序算法在最坏情况下的时间复杂度为______。

中南大学数据结构与算法第5章数组和广义表课后作业答案

中南大学数据结构与算法第5章数组和广义表课后作业答案

第5章数组与广义表习题练习答案5.1请按行及按列优先顺序列出四维数组A2*3*2*3的所有元素在内存中的存储次序,开始结点为a0000。

解:按行优先的顺序排列时,先变化右边的下标,也就是右到左依次变化,这个四维数组的排列是这样的:(将这个排列分行写出以便与阅读,只要按从左到右的顺序存放就是在内存中的排列位置) a0000a0001a0002a0010a0011a0012a0100a0101a0102a0110a0111a0112a0200a0201a0202a0210a0211a0212a1000a1001a1002a1010a1011a1012a1100a1101a1102a1110a1111a1112a1200a1201a1202a1210a1211a1212按列优先的顺序排列恰恰相反,变化最快的是左边的下标,然后向右变化,所以这个四维数组的排列将是这样的,(这里为了便于阅读,也将其书写为分行形式):a0000a1000a0100a1100a0200a1200a0010a1010a0110a1110a0210a1210a0001a1001a0101a1101a0201a1201a0011a1011a0111a1111a0211a1211a0002a1002a0102a1102a0202a1202a0012a1012a0112a1112a0212a02125.2 给出C语言的三维数组地址计算公式。

解:因为C语言的数组下标下界是0,所以Loc(A mnp)=Loc(A000)+((i*n*p)+k)*d其中Amnp表示三维数组。

Loc(A000)表示数组起始位置。

i、j、k表示当前元素的下标,d表示每个元素所占单元数。

5.3设有三对角矩阵A n*n,将其三条对角线上的元素逐行地存储到向量B[0...3n-3]中,使得B[k]=a ij,求:(1)用i , j 表示k的下标变换公式。

(2)用k 表示i,j 的下标变换公式。

数据结构与算法题库(含参考答案)

数据结构与算法题库(含参考答案)

数据结构与算法题库(含参考答案)一、单选题(共100题,每题1分,共100分)1、在一次校园活动中拍摄了很多数码照片,现需将这些照片整理到一个PowerPoint 演示文稿中,快速制作的最优操作方法是:A、创建一个 PowerPoint 相册文件。

B、创建一个 PowerPoint 演示文稿,然后批量插入图片。

C、创建一个 PowerPoint 演示文稿,然后在每页幻灯片中插入图片。

D、在文件夹中选中所有照片,然后单击鼠标右键直接发送到PowerPoint 演示文稿中。

正确答案:A2、下面对“对象”概念描述错误的是A、对象不具有封装性B、对象是属性和方法的封装体C、对象间的通信是靠消息传递D、一个对象是其对应类的实例正确答案:A3、设栈与队列初始状态为空。

首先A,B,C,D,E依次入栈,再F,G,H,I,J 依次入队;然后依次出队至队空,再依次出栈至栈空。

则输出序列为A、F,G,H,I,J,E,D,C,B,AB、E,D,C,B,A,J,I,H,G,FC、F,G,H,I,J,A,B,C,D,E,D、E,D,C,B,A,F,G,H,I,J正确答案:A4、设表的长度为 20。

则在最坏情况下,冒泡排序的比较次数为A、20B、19C、90D、190正确答案:D5、设二叉树的前序序列为 ABDEGHCFIJ,中序序列为 DBGEHACIFJ。

则后序序列为A、DGHEBIJFCAB、JIHGFEDCBAC、GHIJDEFBCAD、ABCDEFGHIJ正确答案:A6、Excel工作表B列保存了11位手机号码信息,为了保护个人隐私,需将手机号码的后 4 位均用“*”表示,以 B2 单元格为例,最优的操作方法是:A、=REPLACE(B2,7,4,"****")B、=REPLACE(B2,8,4,"****")C、=MID(B2,7,4,"****")D、=MID(B2,8,4,"****")第 10 组正确答案:B7、小金从网站上查到了最近一次全国人口普查的数据表格,他准备将这份表格中的数据引用到 Excel 中以便进一步分析,最优的操作方法是:A、通过 Excel 中的“自网站获取外部数据”功能,直接将网页上的表格导入到 Excel 工作表中。

中南大学计算机科学与技术专业本科培养方案

计算机科学与技术专业本科培养方案一、专业简介我校计算机科学与技术专业源于早期的电子计算机专业,该专业在1972年由当时的中南矿冶学院(全国重点大学)创办,是湖南省最早的计算机专业之一。

计算机科学系现有教师56名;其中教授13人,博士生导师8人,副教授19人,讲师24人;拥有博士学位的教师26人,占46%;具有留学经历的教师15人。

经过多年努力,计算机科学与技术专业已形成一套特色鲜明、富有成效的办学体系。

2001年计算机应用技术专业被评为湖南省重点专业。

2009年获计算机科学与技术专业国家级特色专业称号。

2011年计算机科学与技术一级学科专业被评为湖南省重点专业。

通过与科研、产业的结合,本专业培养跨学科高级研究及应用型人才,突出“计算机网络”、“计算机算法理论与设计”、“可信计算”、“现代软件工程”、“图形学与图像处理”、“数字媒体”、“嵌入式系统”等专业方向;并与学校国家重点学科相结合,融合“医学信息处理”、“生物计算”、“冶炼、材料、交通运输工程中的复杂计算”、“过程仿真与可视化”等专业特色。

二、培养目标中南大学计算机科学与技术专业本科生的培养定位和目标主要体现在以下三个方面:(1)主要培养面向应用基础和应用的科学和技术问题,具备知识创新、技术创新或集成创新能力的研究型及应用型高级复合型人才。

(2)通过本科阶段的学习,学生应具备高级复合型人才所需要的基本知识结构、基本能力和基本综合素质。

毕业生应掌握较为扎实的数学和自然科学基础,掌握较为系统、深入的计算机科学与技术学科的基础理论、专门知识和基本技能,具备研究型和高级应用型复合人才不可或缺的健全人格、社会责任感、科学精神、自我学习能力和人文素质,具备进行有效交流与团队合作的能力,毕业后能从事计算机科学理论、计算机系统结构、计算机网络、计算机软件及计算机应用技术等方面的科研、开发、教育和管理等工作。

同时初步具备能够分析、解决困难、复杂问题的创新能力,初步具备国际化视野。

数据结构与算法面试题80道

数据结构与算法面试题80道由于这些题,实在太火了。

因此,应广大网友建议要求,在此把之前已整理公布的前80题,现在,一次性分享出来。

此也算是前80题第一次集体亮相。

此些题,已有上万人,看到或见识到,若私自据为己有,必定为有知之人识破,付出代价。

因此,作者声明:本人July对以上所有任何内容和资料享有版权,转载请注明作者本人July出处。

向你的厚道致敬。

谢谢。

----------------------------------------------------------------------------------------------------------------1.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。

要求不能创立任何新的结点,只调整指针的指向。

10/ \6 14/ \ / \4 8 12 16转换成双向链表4=6=8=10=12=14=16。

首先我们定义的二元查找树节点的数据结构如下:struct BSTreeNode{int m_nValue; // value of nodeBSTreeNode *m_pLeft; // left child of nodeBSTreeNode *m_pRight; // right child of node};2.设计包含min函数的栈。

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。

要求函数min、push以及pop的时间复杂度都是O(1)。

3.求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。

数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。

求所有子数组的和的最大。

要求时间复杂度为O(n)。

例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。

中南大学十套数据结构试题及答案

数据结构试卷(一) .................. 1 数据结构试卷(二) .................. 4 数据结构试卷(三) .................. 6 数据结构试卷(四) .................. 8 数据结构试卷(五) .................. 11 数据结构试卷(六) .................. 14 数据结构试卷(七) .................. 16 数据结构试卷(八) .................. 18 数据结构试卷(九) (20)数据结构试卷(一)参考答案 ........... 26 数据结构试卷(二)参考答案 ........... 27 数据结构试卷(三)参考答案 ........... 28 数据结构试卷(四)参考答案 ........... 30 数据结构试卷(五)参考答案 ........... 32 数据结构试卷(六)参考答案 ........... 33 数据结构试卷(七)参考答案 ........... 36 数据结构试卷(八)参考答案 ........... 37 数据结构试卷(九)参考答案 .. (38)数据结构试卷(一)、单选题(每题 2 分,共 20 分)1. 栈和队列的共同特点是 ( )。

A. 只允许在端点处插入和删除元素B. 都是先进后出C. 都是先进先出D. 没有共同点2. 用链接方式存储的队列,在进行插入运算时 ( ). A. 仅修改头指针 B. 头、尾指针都要修改 C. 仅修改尾指针 D. 头、尾指针可能都要修改3. 以下数据结构中哪一个是非线性结构? ( )A. 队列B. 栈C. 线性表D. 二叉树4. 设有一个二维数组 A[m][ n],假设 A[0][0]存放位置在 644(io ),A[2][2]存放位置在676(10),每个元素占一个空间, 问 A[3][3] (10)存放在什么位置?脚注 (10)表示用 10 进制 表示。

中南大学数据结构与算法第9章查找课后作业答案

第9章查找习题练习答案1.对含有n个互不相同元素的集合,同时找最大元和最小元至少需进行多少次比较?答:设变量max和min用于存放最大元和最小元(的位置),第一次取两个元素进行比较,大的放入max,小的放入min。

从第2次开始,每次取一个元素先和max比较,如果大于max则以它替换max,并结束本次比较;若小于max则再与min相比较,在最好的情况下,一路比较下去都不用和min相比较,所以这种情况下,至少要进行n-1次比较就能找到最大元和最小元。

2.若对具有n个元素的有序的顺序表和无序的顺序表分别进行顺序查找,试在下述两种情况下分别讨论两者在等概率时的平均查找长度:(1)查找不成功,即表中无关键字等于给定值K的记录;(2)查找成功,即表中有关键字等于给定值K的记录。

答:查找不成功时,需进行n+1次比较才能确定查找失败。

因此平均查找长度为n+1,这时有序表和无序表是一样的。

查找成功时,平均查找长度为(n+1)/2,有序表和无序表也是一样的。

因为顺序查找与表的初始序列状态无关。

3.画出对长度为18的有序的顺序表进行二分查找的判定树,并指出在等概率时查找成功的平均查找长度,以及查找失败时所需的最多的关键字比较次数。

答:等概率情况下,查找成功的平均查找长度为:ASL=(1+2*2+3*4+4*8+5*3)/18=3.556查找失败时,最多的关键字比较次树不超过判定树的深度,此处为5.4.为什么有序的单链表不能进行折半查找?答:因为链表无法进行随机访问,如果要访问链表的中间结点,就必须先从头结点开始进行依次访问,这就要浪费很多时间,还不如进行顺序查找,而且,用链存储结构将无法判定二分的过程是否结束,因此无法用链表实现二分查找。

5.设有序表为(a,b,c,e,f,g,i,j,k,p,q),请分别画出对给定值b,g和n进行折半查找的过程。

解:(1)查找b的过程如下(其中方括号表示当前查找区间,圆括号表示当前比较的关键字)下标: 1 2 3 4 5 6 7 8 9 10 11 12 13第一次比较: [a b c d e f (g) h i j k p q]第二次比较: [a b (c) d e f] g h i j k p q第三次比较: [a (b)]c d e f g h i j k p q经过三次比较,查找成功。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章绪论习题练习答案
简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。

• 数据:指能够被计算机识别、存储和加工处理的信息载体。

• 数据元素:就是数据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。

数据元素
有时可以由若干数据项组成。

• 数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。

通常数据类型可以看作是程序设计语言中已实现的数据结构。

• 数据结构:指的是数据之间的相互关系,即数据的组织形式。

一般包括三个方面的内容 :数据的逻辑结构、存储结构和数据的运算。

• 逻辑结构:指数据元素之间的逻辑关系
• 存储结构:数据元素及其关系在计算机存储器内的表示,称为数据的存储结构
• 线性结构:数据逻辑结构中的一类。

它的特征是若结构为非空集,则该结构有且只有一个开始结点和一个终端结点,并且所有结点都有且只有一个直接前趋和一个直接后继。

线性表就是一个典型的线性结构。

栈、队列、串等都是线性结构。

• 非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前趋和直接后继。

数组、广义表、树和图等数据结构都是非线性结构。

试举一个数据结构的例子、叙述其逻辑结构、存储结构、运算三个方面的内容。

答:
例如有一张学生体检情况登记表,记录了一个班的学生的身高、体重等各项体检信息。

这张登记表中,每个学生的各项体检信息排在一行上。

这个表就是一个数据结构。

每个记录(有姓名,学号,身高和体重等
字段)就是一个结点,对于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),其他的结点则各有一个也只有一个直接前趋和直接后继(它的前面和后面均有且只有一个记录)。

这几
个关系就确定了这个表的逻辑结构是线性结构。

这个表中的数据如何存储到计算机里,并且如何表示数据元素之间的关系呢即用一片连续的内存单元来存放这些记录(如用数组表示)还是随机存放各结点数据再用指针进行链接呢这就是存储结构的问题。

在这个表的某种存储结构基础上,可实现对这张表中的记录进行查询,修改,删除等操作。

对这个表可以进行哪些操作以及如何实现这些操作就是数据的运算问题了。

常用的存储表示方法有哪几种
答:
常用的存储表示方法有四种 :
• 顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。

由此得到的存储表示称为顺序存储结构,通常借助程序语言的数组描述。

• 链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示。

由此得到的存储表示称为链式存储结构,通常借助于程序语言的指针类型描述。

• 索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。

组成索引表的索引
项由结点的关键字和地址组成。

若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引(Dense
Index)。

若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引。

• 散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。

设三个函数 f,g,h 分别为 f(n)=100n 3+n2+1000 , g(n)=25n3+5000n2 , h(n)=+5000nlgn 请判断下列关系是否成立:
(1)f(n)=O(g(n))
(2)g(n)=O(f(n))
(3)h(n)=O
(4)h(n)=O(nlgn)
分析:
数学符号"0"的严格的数学定义:
若T (n)和f (n)是定义在正整数集合上的两个函数,贝U T (n) =0 (f (n))表示存在正的常数C和nO, 使得当n》nO时都满足0<T ( n) < C • (fn )。

通俗地说,就是当n—s时,f(n)的函数值增长速度与 T (n)的增长速度同阶。

一般,一个函数的增长速度与该函数的最高次阶同阶。

即:
0(f(n))=n3
0(g(n))=n3
0(h(n))=
所以答案为:
答:
•(1)成立
•(2)成立
•( 3)成立。

•( 4)不成立。

设有两个算法在同一机器上运行,其执行时间分别为100n2和2n,要使前者快于后者,
n 至少要多大分析:
要使前者快于后者,即前者的时间消耗低于后者,即:
n
100n2
<2
求解上式,可得
答:
n=15
设n为正整数,利用大"0"记号,将下列程序段的执行时间表示为n的函数。

(1)i=1; k=0;
while(i<n)
{ k=k+10*i;i++;
}
分析:
i=1; //1
while(i<n) //n
{ k=k+10*i; //n-1
i++; //n-1
}
由以上列出的各语句的频度,可得该程序段的时间消耗: T(n)=1+1+n+(n-1)+(n-1)=3n 可表示为 T(n)=O(n)
(2)i=0; k=0;
do{
k=k+10*i; i++;
}
while(i<n);
分析:
i=0; //1
k=0; //1
do{ //n
k=k+10*i; //n
while(i<n);//n
由以上列出的各语句的频度,可得该程序段的时间消耗:
T(n)=1+1+n+n+n+n=4n+2
可表示为 T(n)=O(n)
(3)i=1; j=0;
while(i+j<=n)
{
if (i>j) j++;
else i++;
}
分析:
通过分析以上程序段,可将 i+j 看成一个控制循环次数的变量,且每执行一次循环, i+j 的值加 1。

该程序段的主要时间消耗是 while 循环,而 while 循环共做了 n 次,所以该程序段的执行时间为:T(n)=O(n)
(4)x=n; // n>1
while (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 得:yvn^
所以,该程序段的执行时间为:
向下取整(n A
(5)x=91; y=100;
while(y>0)
if(x>100)
{x=x-10;y--;}
else x++;
分析:
x=91; //1
y=100; //1
while(y>0) //1101
{ x=x-10; //100
y--; //100
}
else
x++; //1000
以上程序段右侧列出了执行次数。

该程序段的执行时间为:
T(n)=O(1)
算法的时间复杂度仅与问题的规模相关吗
答:
算法的时间复杂度不仅与问题的规模相关,还与输入实例中的初始状态有关。

但在最坏的情况下,其时间复杂度就是只与求解问题的规模相关的。

我们在讨论时间复杂度时,一般就是以最坏情况下的时间复杂度为准的。

按增长率由小至大的顺序排列下列各函数:
K 次方阶:、 n(3/2)指数阶 (按指数由小到大排 ): n lgn、(3/2) n、2n、 n!、 n n
注意:(2/3)A n由于底数小于1,所以是一个递减函数,其数量级应小于常数阶。

根据以上分析按增长率由小至大的顺序可排列如下: (2/3)n < 2100 < lgn < < n(3/2) < n lgn < (3/2)n < 2n < n! < n n
有时为了比较两个同数量级算法的优劣,须突出主项的常数因子,而将低次项用大"O" 记号表示。

例如,设T i(n)=+100n+256=+O(n), T2(n)==+0(n),这两个式子表示,当 n足够大时T i(n)优于T2(n),因为前者的常数
因子小于后者。

请用此方法表示下列函数,并指出当 n 足够大时,哪一个较优,哪一个较劣
函数大"0"表示优劣
5n1 2+0(n) 较差
(4) T4(n)=+6000nlgn +0(nlgn)
2100, (3/2)n,(2/3)n, n n , , n! ,
2n,lgn ,n lgn, n(3/2)
答:
常见的时间复杂度按数量级递增排列
,依次为:常数阶0(1)、对数阶0(log2n)、线性阶0(n)、线性对数阶
0(nlog2n)、平方阶0(n2)、立方阶0(n3)、k
次方阶0(n k)、指数阶0(2n)。

先将题中的函数分成如下几类:
常数阶: 2100
1 T i(n)=5n2-3n+60lgn
2 T2(n)=3n2+i000n+3lgn 3n2+0(n) 其次
(3) T3(n)=8n2+3lgn 8n2+0(lgn) 最差
最优
对数阶: lgn。

相关文档
最新文档