中南大学算法试卷
2014年12月中南大学网络教育课程考试:算法分析与设计作业参考答案
《算法分析与设计》作业参考答案作业一一、名词解释:1.递归算法:直接或间接地调用自身的算法称为递归算法。
2.程序:程序是算法用某种程序设计语言的具体实现。
二、简答题:1.算法需要满足哪些性质?简述之。
答:算法是若干指令的有穷序列,满足性质:(1)输入:有零个或多个外部量作为算法的输入。
(2)输出:算法产生至少一个量作为输出。
(3)确定性:组成算法的每条指令清晰、无歧义。
(4)有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限。
2.简要分析分治法能解决的问题具有的特征。
答:分析分治法能解决的问题主要具有如下特征:(1)该问题的规模缩小到一定的程度就可以容易地解决;(2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质; (3)利用该问题分解出的子问题的解可以合并为该问题的解;(4)该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公共的子问题。
3.简要分析在递归算法中消除递归调用,将递归算法转化为非递归算法的方法。
答:将递归算法转化为非递归算法的方法主要有:(1)采用一个用户定义的栈来模拟系统的递归调用工作栈。
该方法通用性强,但本质上还是递归,只不过人工做了本来由编译器做的事情,优化效果不明显。
(2)用递推来实现递归函数。
(3)通过Cooper 变换、反演变换能将一些递归转化为尾递归,从而迭代求出结果。
后两种方法在时空复杂度上均有较大改善,但其适用范围有限。
三、算法编写及算法应用分析题: 1.冒泡排序算法的基本运算如下:for i ←1 to n-1 do for j ←1 to n-i do if a[j]<a[j+1] then 交换a[j]、a[j+1]; 分析该算法的时间复杂性。
答:排序算法的基本运算步为元素比较,冒泡排序算法的时间复杂性就是求比较次数与n 的关系。
(1)设比较一次花时间1;(2)内循环次数为:n-i 次,(i=1,…n ),花时间为:∑-=-=in j i n 1)(1(3)外循环次数为:n-1,花时间为:2.设计一个分治算法计算一棵二叉树的高度。
中南大学计算机试题及答案
中南大学计算机试题及答案一、选择题1. 下面哪个选项是正确的?A. 1+1=2B. 1+1=3C. 1+1=4D. 1+1=5答案:A2. 在计算机科学中,TCP是指什么?A. 传输控制协议B. 网络传输协议C. 通信控制协议D. 传输通信协议答案:A3. 下面哪个选项是正确的?A. HTML是一种编程语言B. Java是一种标记语言C. Python是一种网络协议D. CSS是一种数据库语言答案:A二、填空题1. 计算机中最基本的数据存储单位是_______。
答案:字节2. 在二进制系统中,8个二进制位可以表示_______个不同的数值。
答案:2563. WWW是指_______。
答案:万维网三、解答题1. 简述计算机网络的作用和意义。
计算机网络可以让全世界范围内的计算机互相连接和通信,使得信息的传递和交流更加方便和高效。
它的作用和意义如下:首先,计算机网络可以实现信息的共享。
通过网络,人们可以轻松获取到各种各样的信息,包括文档、音频、视频等,这使得知识的传播更加广泛和快速。
其次,计算机网络可以提供远程访问的功能。
人们可以通过网络连接到远程的计算机或服务器,进行资源共享和远程操作,大大提高了工作效率和便捷性。
此外,计算机网络也促进了全球范围内的合作和交流。
人们可以通过网络与其他地区的人进行实时的通讯和合作,不受时空的限制,加快了商务合作和学术研究的进程。
总之,计算机网络在现代社会中扮演着重要的角色,它改变了人们的工作方式、生活方式和学习方式,为社会发展和进步做出了巨大的贡献。
2. 简述计算机网络中“IP地址”和“子网掩码”的作用和区别。
IP地址是指互联网协议地址,它是计算机在网络中的唯一标识符。
IP地址的作用是用来标识和定位计算机在网络中的位置,使得计算机能够相互通信和交换数据。
子网掩码是用来划分网络中的子网的一种地址掩码。
子网掩码的作用是用来判断一个IP地址属于哪个网络或子网,以及确定网络中的主机数量。
中南大学试题
; 用汇编语言实现实现冒泡排序,并将排序后的数输出DATAS SEGMENT A dw 3 10 8 56 22 36 1 43 31 3N=$-A ; 计算数字所占的字节数DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AX MOV SI,0 MOV CX,N/2-1 CALL BUBBLE;SI 遍历数字; 前一个数的地址;设置循环次数,M(M=N/2个数需要,循环M-1次;调用BUBBL将原来的数排序; 输出排序后的数MOV CX,N/2 MOV SI,0 MOV DI,0;循环M次输出排序后的M个数;SI 遍历排序后的数;用DI记录数字的位数MOV BP,N+5 ;BP 用于遍历存储的转化后的字符的位置SHOW: PUSH CX; 循环次数入栈MOV DX,0 ; 由于将要进行16位除需要置高16位为0 MOV AX,[SI] ; 低16位为排序后的数CALL DTOC ;调用DTO将十进制数转换为字符串CALL SHOW_STR调用SHOW_S将一个数转化得到的字符串输出ADD SI,2 ; 下一个数POP CX ; 循环次数出栈栈LOOP SHOWMOV AH,4CHINT 21H ; 冒泡排序BUBBLE PROCL1: PUSH CXLEA SI,AL2: MOV AX,A[SI]CMP AX,A[SI+2]JBE NEXTXCHG AX,A[SI+2]; 将循环次数入栈;SI遍历DATA数据段的数字; 将前一个数存于AX; 比较前后两个数; 如果前一个数小于或等于后一个数则继续本轮的比较; 否则,交换前后两个数的位置MOV A[SI],AXNEXT:ADD SI,2LOOP L2POP CXLOOP L1RET BUBBLE ENDP; 下一个数; 注意内层循环的次数已经确定了; 将循环次数出栈; 下一轮比较将十进制数转换为字符串并储存起来DTOC PROCS:MOV CX,10 ; CALL DIVDW ADD CL,30H将除数10,放入CX中;调用DIVDV程序;把数字转换为ASCII码,这样就能显示了MOV DS:[BP],CL ; 把ASCII码放到内存中INC DIPUSH AXADD AX,DXJZ BACKPOP AXDEC BP ; JMP S; 用DI 记录循环的次数; 将低16位入栈; 将高位与低位相加,接着判断是否已经除尽; 除尽后返回调用处; 将低1 6位出栈逆序存放转化后的字符,便于主程序调用SHOW_STRBACK:POP AX;RET为了得到正确的IP值,需要出栈一次; 子程序定义开始, 功能是分离被除数的各个位的数字; 公式:X/N=int(H/N)*65536+[rem(H/N)*65536+L]/N DIVDW PROCPUSH AX MOV AX,DX MOV DX,0DIV CXMOV BX,AX POP AXDIV CX ; MOV CX,DX ; MOV DX,BX ; RET ;DIVDW ENDP ; 低16位入栈;将高16位写入AX,; 将高16位置零; 将新的数除10,;将商int(H/N)转移到BX 默认余数rem(H/N)在DX; 将低16位出栈,将[rem(H/N)*65536+L]除10,默认余数在DX 将余数转移到CX将商int(H/N)转移到dx,相当于int(H/N)*65536 子程序定义结束; 实现字符串的输出SHOW_STR PROC S2:MOV AH,2 MOV DL,DS:[BP] INT 21HINC BPDEC DIJZ OKJMP S2; 输出数字转化后的字符串; 顺序输出; 数字的位数减一; 字符串输出完了就结束; 否则继续输出OK:MOV AH,2 ;输出空格MOV DL,0INT 21HRETSHOW_STR ENDPCODES ENDSEND START第一个累加和的源码:AREA TEXT,CODE,READWRITEENTRYMOV R0,#100 ;循环数目MOV R1,#0 ;初始化数据LOOPADD R1,R1,R0 ;将数据进行相加,获得最后的数据SUBS R0,R0,#1 ;循环数据R0减去1CMP R0,#0 ;将R0与0比较看循环是否结束BNE LOOP ;判断循环是否结束,接受则进行下面的步骤LDR R2,=RESULTSTR R1,[R2]RESULTDCD 0STOPB STOP第二个排序的源码附上:;排列算法:先将所有的数据与第一个进行比较,最后取出最小的数据放到第一个内存单元中;然后再从第二个内存单元开始进行比较,将第二小的数据放到第二个内存单元中,;以此内推则能将十个数据进行排列。
中南大学《科学计算与数学建模》2019-2020学年第一学期期末试卷
---○---○------○---○---学院专业班级学号姓名…………评卷密封线………………密封线内不要答题,密封线外不准填写考生信息,违者考试成绩按分处理………………评卷密封线…………中南大学期末考试试卷2019——2020学年一学期科学计算与数学建模课程时间100分钟学时,学分,闭卷,总分100分,占总评成绩%年月日题号一二三四五六七八九十合计满分201510202015100得分评卷人复查人一、单项选择题(本题20分,每小题2分)1.在数值分析中,下列哪个算法用于求解非线性方程?A.高斯消元法B.牛顿-拉夫森方法C.快速傅里叶变换D.龙格-库塔法2.数学建模中,系统动力学模型通常用什么来描述?A.微分方程B.线性代数C.逻辑表达式D.概率分布3.下面哪种方法不适用于解决优化问题?A.梯度下降法B.蒙特卡洛模拟C.线性规划D.遗传算法4.在计算复杂性理论中,P 类问题是指:A.不可解问题B.多项式时间内可解决的问题C.指数时间内可解决的问题D.NP 难问题得分评卷人5.数值积分中,梯形法则是基于以下哪个原理?A.最小二乘法B.插值法C.泰勒级数展开D.极限定义6.在数学建模中,参数估计通常使用哪种方法?A.回归分析B.聚类分析C.主成分分析D.因子分析7.下列哪个选项不是常微分方程的解法?A.分离变量法B.特征线法C.有限差分法D.幂级数解法8.在数学建模中,以下哪项是确定性模型的特点?A.考虑随机因素B.参数固定不变C.结果具有概率性D.包含不确定性9.对于大规模问题的求解,下列哪种方法可能不适合?A.分而治之B.动态规划C.贪心算法D.分支界定法10.在进行统计分析时,下列哪个图不适用于分类数据的展示?A.条形图B.饼图C.直方图D.散点图二、多项选择题(本题15分,每小题3分,多选,错选,漏选均不得分。
)1.在科学计算中,以下哪些算法可以用来求解线性方程组?A.雅可比迭代法B.高斯消去法C.最小二乘法D.共轭梯度法2.下列哪些属于运筹学的优化方法?A.单纯形法B.分支定界法C.模拟退火算法D.A 和B 都对3.在数学建模中,风险分析可以采用以下哪些方法?A.敏感性分析B.蒙特卡洛模拟C.故障树分析D.灰色预测模型4.下列哪些是计算机辅助设计软件?A.MATLABB.AutoCADC.MathematicaD.ANSYS5.在数值分析中,以下哪些方法可用于求解偏微分方程?A.有限元方法B.边界元方法C.谱方法D.网格生成方法得分评卷人三、判断题(本题10分,每小题1分)1.()欧拉方法是用于数值求解常微分方程的一种隐式方法。
中南大学计算机数据结构试题参考答案讲解学习
中南大学计算机数据结构2013试题参考答案中南大学考试试卷2015--2016学年上学期期末考试试题时间100分钟数据结构课程56学时3.5学分考试形式:闭卷专业年级:计算机科学与技术10级总分100分,占总评成绩70%姓名班级学号(本试卷共四道大题,答案全部做在答题纸上!)一、选择题(每题2分,共24分)1.以下数据结构中,属于线性结构的是()A.图B.栈C.二分查找树D.森林2.用二分法查找表(a0,a1,a2,a3,……a16),需要比较2次才能找到的元素是()A.a7和a16 B.a11和a13C.a1和a14 D.a3和a123.用概率查找改进查找效率,是经过多次查找以后使得()A.查找次数越少的元素查找速度越快B.查找次数越少的元素越往前存放C.查找次数越多的元素越往后存放D.查找次数越多的元素查找速度越快4.二分查找要求元素( )A.有序、顺序存储B.有序、链式存储C.无序、顺序存储D.无序、链式存储5.已知pPre为指向链表中某结点的指针,pNew是指向新结点的指针,以下哪段伪码算法是将一个新结点插入到链表中pPre所指向结点的后面?()A.pPre->link = pNew; pNew = null;B.pPre->link = pNew->link; pNew->link = null;C.pNew->link = pPre->link; pPre->link = pNew;D.pNew->link = pPre->link; pPre->link = null;6.在递归算法执行过程中,计算机系统必定会用到的数据结构是()A.队列B.链表C.栈D.二叉树7.一个队列的入列序为ABCD,则队列的可能输出序列为()A.DCBA B.ABCDC.ADCB D.CBDA8.具有10个叶子结点的二叉树中有()个度为2的结点A.8 B.9C.10 D.119.若A=10,B=4,C=6,D=4,E=15则后缀表达式“AB*CD+-E+”的值为( )。
算法分析与设计考试试卷(2011) 答案
中南大学考试试卷答案2011 -- 2012学年上学期时间120分钟 2012 年1 月6日算法分析与设计课程 48 学时 3 学分考试形式:闭卷专业年级:09级计算机、信安本科生,总分100分,占总评成绩70 %注:此页不作答题纸,请将答案写在答题纸上1. (15points) Describe the main ideas of the following strategies, and briefly describe the differences between them.(1) divide-and–conquer;Divide the problem into two or more smaller subproblems;Conquer the subproblems by solving them recursively;Combine the solutions to the subproblems into the solutions for the original problem(2) dynamic programming;Solve several smaller (overlapping) subproblems;Record solutions in a table so that each subproblem is only solved once;Final state of the table will be (or contain) solution(3)branch and boundCombine depth-first search and breadth-first search.Selecting the node with the best estimated cost among all nodes.Set up a bounding function, which is used to compute a bound (for the value of the objective function) at a node on a state-space tree and determine if it is promising.2. (30 points) Choose T or F for each of the following statements.1)The best case running time for quicksort to sort an element array is O(nlogn).T2)By the master theorem, the solution to the recurrence T(n)=3T(n/3)+3n isT(n)=O(nlogn). T3)Every binary search tree on n nodes has height O(logn). F4)By using path compression (Union- Find) technique to analyze Kruskal algorithm,the algorithm’s running time is O(mlog*n+nlog*n). F5)Depth-first search of a graph is asymptotically faster than breadth-first search. F6)Kruskal’s algorithm for findin g a minimum spanning tree employs dynamicprogramming. F7)The backtrack technique uses the idea of breath first search to get the optimalvalue. F8)n!=O(2n). F9)In the worst case, merge sort runs in O(n2)time. F10)In computer science, all the problems are either in P or NP. F11)Kruskal’s algorithm is faster Prim’s algorithm. F12)Divide-and-Conquer is a bottom-up algorithm and Dynamic Programming is atop-down algorithm. F13)For an unweighted graph G, Depth-first search algorithm can be used to find theshortest paths from a given vertex to other vertices. F14)The strategy using greedy algorithm to solve Knapsack problem is that: each time,choose the item with maximum value to put into the knapsack. T15)The problems solvable by Dynamic Programming can also be solved byDivide-and-Conquer algorithm. T3. Algorithm Design(20)(1) (10) Given a graph G=(V, E), use Depth-First-Search to count the number of connected components in G.DFS(G){for each vertex u{u.color = WHITE;}time = 0;i=0;for each vertex u{if (u.color == WHITE)DFS_Visit(u);i++;}}DFS_Visit(u){u.color = GREY;time = time+1;d[u] = time;for each v u.Adj[]{if (v.color == WHITE)DFS_Visit(v);}u.color = BLACK;time = time+1;f[u] = time;}(2) (10 points) A maximum spanning tree in a weighted graph G is a spanning tree inG with the largest weight over all spanning trees. Give an efficient algorithm that constructs a maximum spanning tree for a weighted graph G=(V, E), and analyze the running time of your algorithm.Prim1(G)1.VT={v0};2.ET=Ф;3.For i=1 to n-1 dofind a maximum weight edge e*=(u*, v*) amongall the edges (u, v) such that u is in T and v is in V-T;VT=VT∪{v*};ET=ET∪{e*};4. Return ET.4、(10) Solve the following recurrence relation. T(1)=1,a、b、c are constants, and a=b=c=1(1)T(n)=aT(n-1)+bnO(n2)(2)T(n)=aT(n/2)+bn cO(n)5.(25) For a 0/1 knapsack problem, given n items, where each item has weight W and value V, find a set of items that could be put into the knapsack without over the capacity M of the knapsack. Assume that n=4,W={10,8,6,4},V={5,4,3,2},M=12。
中南大学算法分析与设计期中测试2011答案
测试题1. 简述下列策略的基本思想 (15) (1) 分治将输入规模为n 的问题分成k (一般取k=2)个子问题,子问题相互独立,与原问题性质相同。
先分别对k 个子问题求解,再将子问题的解合并成原问题的解。
由于子问题还很大,故采用递归技术对子问题不断分割,直至子问题可直接简单地解出。
(2) 贪心贪心法希望从求局部最优达到全局最优,即依据贪心策略逐步构造最优解。
即先按确定贪心策略,将输入量排序。
再依次做出当前最优的选择,即当前输入可以构成合法的部分解,则将此输入量选入。
决策一旦做出,就不可再更改。
(3) 动态规划动态规划也是将问题求解过程分成k 个阶段(划分子问题),逐步决策的方法。
与贪心法不同的是,动态规划采用划分子问题,自底向上规划的方法。
要求子问题的划分具备最优子结构性质,即“最优化原理”成立。
需列出当前决策对前阶段决策状态的依赖关系(贝尔曼方程),求出各子问题的最优解,并将子问题的最优解代到下一步的决策中,逐步规划,解出原问题的解。
贝尔曼方程:⎪⎩⎪⎨⎧+==≠}.{min ,0ij i j i j s w u u u2. 下列数组4,1,3,2,16,9,10,14,8,7构成一个堆吗?如果不是,请用自底向上算法建一个 a max-heap.(10) 1) 不是一个最大堆2)按照算法,从i=n/2-5处开始测试i=5 它的孩子节点 2*i=10 ,满足最大堆的规定i=4 ,2i=8,2i+1=9 不满足,整理如下:i=3 ,2i=6,2i+1=7 不满足,整理如下:i=2 ,2i=4,2i+1=5不满足,整理如下:i=1 ,2i=2,2i+1=3不满足,依次整理如下:3. 针对下列叙述,根据正确或错误,选择T或F,并简要说明卫生么.(30)(1) T F nlogn=O(n3) 是上界(2) T F根据master定理, 递归方程T(n)=3T(n/3)+n 的解是T(n)=Θ(n)正确答案:T(n)=O(nlogn)(3)T F 最坏情况下, 归并排序的时间渐进阶是O(n2).归并排序最坏情况下的时间是:T(n)=O(nlogn)(4)T F 图的深度优先搜索的时间是O(n+|E|)。
中南大学算法设计与分析试卷及答案
Mcolor(n)
{k←1; x[k] ←0;
While k>0 do
(2 分)
{ x[k] ← x[k]+1;
while place(k)=false and x[k]≤m do
x[k] ← x[k]+1
if x[k]≤m then
(2 分)
if k=n then
{print x
Return
(2 分)
当 X≥wi } (3 分)
fi(X)是前 i 个物品,背包容积 X 子问题的最优值,
当第 i 个物品不选入,fi(X)等于 fi-1(X)前 i-1 个物品,背包容积 X 子问题
的最优值,
当第 i 个物品不选入,得利润 pi ,但前 i-1 个物品能使用背包为 X—wi 。(3 分)
3、修改图的 m-着色的回溯算法,找到一个解,算法就结束。
else print “No”
(3 分)
它是如何提高算法的效率的?
(6 分)
4、简述归并排序算法和快速排序算法的分治方法。
(6 分)5、一般背包问源自的贪心算法可以获得最优解吗?物品的选择策略是什么?(6 分)
6、Prim 算法和 Dijkstra 算法选择下一个节点的标准分别是什么?对于有负边的无
向图,Prim 算法和 Dijkstra 算法还能保证获得最优解吗?
中南大学考试试卷
2008 -- 2009 学年 2 学期
时间 110 分钟
算法分析与设计 课程 48 学时 3 学分 考试形式: 闭 卷
专业年级: 信安 0601-0602 总分 100 分,占总评成绩 70 %
注:此页不作答题纸,请将答案写在答题纸上
一、 基本概念题(本大题 40 分)
中南大学十套数据结构试题与答案
数据结构试卷(一) (1)数据结构试卷(二) (5)数据结构试卷(三) (9)数据结构试卷(四) (14)数据结构试卷(五) (19)数据结构试卷(六) (24)数据结构试卷(七) (28)数据结构试卷(八) (32)数据结构试卷(九) (36)数据结构试卷(十).......................... 41 数据结构试卷(一)参考答案. (47)数据结构试卷(二)参考答案 (48)数据结构试卷(三)参考答案 (51)数据结构试卷(四)参考答案 (54)数据结构试卷(五)参考答案 (58)数据结构试卷(六)参考答案 (60)数据结构试卷(七)参考答案 (64)数据结构试卷(八)参考答案 (66)数据结构试卷(九)参考答案 (69)数据结构试卷(十)参考答案 (71)数据结构试卷(一)一、单选题(每题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(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
算法基础试题及答案
算法基础试题及答案一、单项选择题(每题2分,共10分)1. 以下哪个选项是算法的基本特征之一?A. 有穷性B. 可行性C. 确定性D. 以上都是答案:D2. 在算法设计中,以下哪个步骤是不必要的?A. 问题定义B. 算法描述C. 算法实现D. 算法测试答案:D3. 算法的时间复杂度通常用来描述什么?A. 算法的运行时间B. 算法的空间需求C. 算法的执行步骤数量D. 算法的输入数据大小答案:A4. 以下哪个不是算法设计的基本方法?A. 递归B. 排序C. 搜索D. 迭代答案:B5. 在算法分析中,大O符号表示什么?A. 算法执行的时间B. 算法执行的空间C. 算法执行的最坏情况D. 算法执行的平均情况答案:C二、填空题(每题2分,共10分)1. 算法的输入输出定义了算法的______,算法的步骤定义了算法的______。
答案:功能;实现2. 算法的时间复杂度和空间复杂度是衡量算法______的两个重要指标。
答案:效率3. 在算法设计中,______是一种通过重复执行代码块来实现的算法结构。
答案:循环4. 递归算法通常包括两个基本部分:______和______。
答案:基本情况;递归情况5. 在算法分析中,______复杂度描述了算法执行过程中所需的存储空间。
答案:空间三、简答题(每题5分,共20分)1. 请简述算法的五个基本特征。
答案:算法的五个基本特征包括有穷性、确定性、可行性、输入和输出。
有穷性指算法必须在执行有限步骤后结束;确定性指算法的每一步都必须有明确的定义;可行性指算法的每一步都必须足够基本,以至于可以精确地执行;输入指算法有0个或多个输入,以描述运算的对象和初始条件;输出指算法至少有一个输出,输出表示算法运行的结果。
2. 算法的时间复杂度和空间复杂度有什么区别?答案:时间复杂度主要关注算法执行所需的时间,它通常与算法中操作的数量有关,而空间复杂度则关注算法执行过程中所需的存储空间。
中南大学算法试卷
中南大学考试试卷2012 -- 2013学年上学期时间120分钟2013 年1 月4日算法分析与设计课程48 学时3 学分考试形式:闭卷专业年级:10级计算机、信安、物联本科生,总分100分,占总评成绩70 %注:此页不作答题纸,请将答案写在答题纸上1. (15分)本期学了很多类算法,请针对以下几类设计策略,举出相应的例子,详细描述算法细节,以说明它们为什么是属于相应的设计策略?(1)分治法(2)动态规划(3)贪心策略2. (30分)请判断下列陈述是否正确。
(1)根据Master定理,可得到递归式T(n)=4T(n/2)+n2的解为T(n)=O(n2logn).(2)归并排序在最好情况下的时间复杂度为O(nlogn).(3)具有n个结点的二叉排序树的树高均为O(logn)。
(4)如果一个问题是NP完全问题,它肯定也是NP问题。
(5)给定n个数,可以在O(n)的时间内找到10个最大数与10个最小数之间的中间数。
(6)Kruskal算法利用了动态规划思想寻找给定图中的最小生成树。
(7)n!=O(2n)。
(8)回溯法借鉴了广度优先的策略得到问题的最优解。
(9)对于一个有n个顶点m条边的无向图G,有两个不同的顶点s( t,则在O(m+n)的时间内可以找到s与t之间的最短路径。
(10)在最坏情况下,快速排序耗费O(N2)。
(11)如果图中包含负权值的边,则Dijkstra算法不可适用。
(12)分治法是属于自底向上的算法策略;动态规划是属于自顶向下的算法策略。
(13)有一个算法,将n个整数a1,...,an作为输入,算法的时间复杂度是O(a1+a2+......+an)。
它是一个多项式时间算法。
(14)有一个图G=(V,E) ,每条边e∈E的权We>0, 如果一棵生成树T 最小化Σe∈TWe ,那么T 也最小化Σe∈TWe2 ,反之也成立(即图中边的权值都平方后,生成树T仍是这个图的最小生成树)。
(15)给定两个判定性问题Q1、Q2,如果Q1可以在多项式时间内规约到Q2,则Q1和Q2具有同等难度。
2014中南大学网络教育课程考试:算法分析与设计复习试题及答案解析
2014中南大学网络教育课程考试:算法分析与设计复习试题及答案解析算法分析与设计一、简要回答下列问题:1.算法重要特性是什么?2.算法分析的目的是什么?3.算法的时间复杂性与问题的什么因素相关?4.算法的渐进时间复杂性的含义?5.最坏情况下的时间复杂性和平均时间复杂性有什么不同?6.简述二分检索(折半查找)算法的基本过程。
7.背包问题的目标函数和贪心算法最优化量度相同吗?8.采用回溯法求解的问题,其解如何表示?有什么规定?9.回溯法的搜索特点是什么?10.n皇后问题回溯算法的判别函数place的基本流程是什么?11.为什么用分治法设计的算法一般有递归调用?12.为什么要分析最坏情况下的算法时间复杂性?13.简述渐进时间复杂性上界的定义。
14.二分检索算法最多的比较次数?15.快速排序算法最坏情况下需要多少次比较运算?16.贪心算法的基本思想?17.回溯法的解(x1,x2,……x n)的隐约束一般指什么?18.阐述归并排序的分治思路。
19.快速排序的基本思想是什么。
20.什么是直接递归和间接递归?消除递归一般要用到什么数据结构?21.什么是哈密顿环问题?22.用回溯法求解哈密顿环,如何定义判定函数?23.请写出prim算法的基本思想。
二、复杂性分析1、MERGESORT(low,high)if low<high;then mid←(low,high)/2;MERGESORT(low,mid);MERGESORT(mid+1,high);MERGE(low,mid,high);endifend MERGESORT2、procedure S1(P,W,M,X,n)i←1; a←0while i≤ n doif W(i)>M then return endifa←a+ii←i+1 ;repeatend3.procedure PARTITION(m,p)Integer m,p,i;global A(m:p-1)v←A(m);i←mlooploop i←i+1 until A(i) ≥v repeatloop p←p-1 until A(p) ≤v repeatif i<pthen call INTERCHANGE(A(i),A(p))else exitendifrepeatA(m) ←A(p);A(p) ←vEnd PARTITION4.procedure F1(n)if n<2 then return(1)else return(F2(2,n,1,1))endifend F1procedure F2(i,n,x,y)if i≤nthen call F2(i+1,n,y,x+y)endifreturn(y)end F25.procedure MAX(A,n,j)xmax←A(1);j←1for i←2 to n doif A(i)>xmax then xmax←A(i); j←i;endif repeatend MAX6.procedure BINSRCH(A,n,x,j)integer low,high,mid,j,n;low←1;high←nwhile low≤high domid←|_(low+high)/2_|case:x<A(mid):high ←mid-1:x>A(mid):low ←mid+1 :else:j ←mid; returnendcase repeat j ←0 end BINSRCH三、算法理解1、写出多段图最短路经动态规划算法求解下列实例的过程,并求出最优值。
2022年中南大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年中南大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为()。
A.j=r[j].nextB.j=j+lC.j=j->nextD.j=r[j]->next2、用有向无环图描述表达式(A+B)*((A+B)//A),至少需要顶点的数目为()。
A.5B.6C.8D.93、若线性表最常用的操作是存取第i个元素及其前驱和后继元素的值,为节省时间应采用的存储方式()。
A.单链表B.双向链表C.单循环链表D.顺序表4、在用邻接表表示图时,拓扑排序算法时间复杂度为()。
A.O(n)B.O(n+e)C.O(n*n)D.O(n*n*n)5、下面关于串的叙述中,不正确的是()。
A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储6、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。
下列排序方法中,每一趟排序结束时都至少能够确定一个元素最终位置的方法是()。
Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序Ⅳ.堆排Ⅴ.二路归并排序A.仅Ⅰ、Ⅲ、Ⅳ B.仅Ⅰ、Ⅱ、Ⅲ C.仅Ⅱ、Ⅲ、Ⅳ D.仅Ⅲ、Ⅳ、Ⅴ7、已知关键字序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后的小根堆是()。
A.3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C.3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,198、一棵哈夫曼树共有215个结点,对其进行哈夫曼编码,共能得到()个不同的码字。
A.107B.108C.214D.2159、一棵非空的二叉树的前序序列和后序序列正好相反,则该二叉树一定满足()。
A.其中任意一个结点均无左孩子B.其中任意一个结点均无右孩子C.其中只有一个叶结点D.其中度为2的结点最多为一个10、下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是()。
中南大学2015年-2016年【数据结构】真题
2015年回忆数据结构:
算法题,记得两个
1、求连通分量个数,与2013-4-2一样
2、图的邻接矩阵存储转邻接表存储
应用题,记得两个
1、常规的哈夫曼树,与2014-4-2类似
2、根据二叉树的先序遍历序列和中序遍历序列画出二叉树并写出后序遍历序列,与2011-4-3类似
名词解释
数据结构
16年真题回忆:
算法题:最后一大题:(括号匹配用栈来匹配,用伪代码实现),这种题一般人想不到或者觉得不可能出,但是王道书上的原题,王道书大家一定要好好看。
求图深度遍历和广度遍历之类的算法,具体不是太清楚了,但结果就是这两个算法之一,选个最优查找算法;
然后就是一个插入链表还是。
自己把链表这块王道数据结构看好了就行,毫无压力
还有一个大题就是考的堆;堆的排序算法,比如建一个大堆然后排序输出;堆的名词解释等;然后一个大题是考的哈夫曼树的组成过程,比较简单啦,但是要细心。
选择填空很基础:和以前的真题难度差不多,必须争取满分,
填空题要引起重视,两分一个,一定要把严蔚敏的书上多看几遍,
像串的空串和空格串的区别基本上是必考,
题量比较大,大家引起注意;。
中南大学人工智能考试试卷与答案
中南大学考试试卷2006年第2学期,考试时间110分钟人工智能 课程 4L_学时,卫学分,考试形式:开卷专业年级:计算机 03级 总分100.分,占总评成绩70 %注:此页不作答题纸,请将答案写在答题纸上 一、选择题(共 20分,每题2分)1、 消解原理是一种用于A 、表达式变换的推理规则 C 、一定的子句公式的推理规则2、 下列哪个系统属于新型专家系统?A 、多媒体专家系统C 、车事专家系统3、 示例学习属于下列哪种学习方法?A.解释学习 B.归纳学习4、 不属于神经网络常用学习算法的是:A.有师学习 B.增强学习B 、 变量运算的推理规则D 、规则演绎的推理规则B 、实时专家系统D 、分布式专家系统C. 类比学习D.机械学习C.观察与发现学习D.无师学习5、人工智能应用研究的两个最重要最广泛领域为:A. 专家系统、自动规划 C.机器学习、智能控制6、 下列搜索方法中不属于盲目搜索的是:A. 等代价搜索B.宽度优先搜索7、 被认为是人工智能“元年”的时间应为:B. 专家系统、机器学习 D. 机器学习、自然语言理解C.深度优先搜索D.有序搜索A 、 1948 年B 、1946 年C 、1956 年D 、 1961 年的是:B 、费根鲍姆( Feigenbaum )D 、尼尔逊( Nilsson )B 、状态和算符D 、槽和值 10、尽管人工智能学术界出现“百家争鸣”的局面,但是,当前国际人工智能的主流派仍&被誉为国际“人工智能之父” A 、图灵(Turing ) C 、傅京孙(K.S.Fu ) 9、语义网络的组成部分为:A 、框架和弧线 C 、节点和链属于:A、连接主义B、符号主义C、行为主义D、经验主义二、填空题(共20分,每一填空处1分)1、机器学习系统由_________________ 、______________ 、______________ 和________________ 几部分构成。
中南大学现代远程教育课程考试复习试题及参考答案
中南大学现代远程教育课程考试复习试题及参考答案《算法分析与设计》一简答题1.算法的复杂性分析主要是分析算法的什么耗费情况?2.算法的重要特性是什么?3.算法的时间复杂度用什么计量?4.用比较树模型描述三个数排序的过程。
5.分治法的基本思想。
6.二分检索算法为什么可以提高查找的效率?7.简述顺序选择select算法的基本流程。
8.简述顺序选择select2算法的改进思路。
9.简述快速排序的基本思想。
10.快速排序算法的最坏时间复杂性和平均时间复杂性函数。
11.快速排序算法怎样抽取分割元素?12.partition怎样将数组划分成3段?13.分治合并排序的是怎样分治的?14.分治合并排序的二分归并过程在最坏情况下花费多少时间?15.分治合并排序的二分归并过程在最好情况下花费多少时间?16.MaxMin算法是怎样分治的?17.贪心法的基本思路是什么?18.用贪心法求解的问题有什么特点?19.背包问题的目标函数是什么,最优量度是什么?20.带限期的作业调度的贪心策略是什么?约束条件是什么?21.说明n皇后问题的解(x1,x2,….,x n)的含义。
22.简述n皇后算法的place函数的功能。
23.简述动态规划方法所运用最优化原理。
24.用多段图说明最优化原理。
二解释下列动态规划优解的一般递归形式。
1)0/1背包2)货郎担问题3)流水作业调度三算法分析。
1.分析汉诺塔算法的时间复杂性。
2.计算冒泡排序算法时间复杂性的阶。
3.分析maxmin算法的时间复杂性。
4.分析分治合并排序算法的时间复杂性。
5.分析二分检索的时间复杂性。
6.背包问题贪心算法的时间复杂性。
7.快速排序的partition过程中,进行了多少次元素之间的比较。
8.多段图算法的时间复杂性。
四算法段填空。
1.MaxMin 算法Maxmin(i,j,max,min)ifthen 对两元素进行比较;return;else{maxmin(i,m,max1,min1); //其中max1和min1为解子问题1的解}2.Hanoi算法Hanoi(n,a,b,c)If n=1 thenElse{;Hanoi(n-1,b, a, c);}3.二分检索BINSRCH(A,n,x,j)low←1;high←n;while low<high do{ ________________ mid←(low+high)/2;case:x=A[mid] :j←mid; return;:x< A[mid]:_________________high←mid-1;:x> A[mid]:_________________low←mid+1;endcase}j←0;end4.快速排序Quicksort(p,q)if p>q then_____________{call partition(p,j);call _______________________call _______________________}end5.贪心方法的抽象化控制procedure GREEDY(A,n)//A(1:n)包含n个输入//solutions←;for i←1 to do{x←SELECT(A)if FEASIBLE(solution,x)then solutions←; endif}return(solution)end GREEDY6.背包问题贪心算法procedure GREEDY-KNAPSACK(P,W,M,X,n)X←0 ;cu←M ;for i←1 to n do{ if then exit endifX(i) ← _ ;cu←;}if i ≤n then X(i) ←;endifend GREEDY-KNAPSACK7.分治合并排序算法procedure MERGESORT(low,high)if low < high thenmid ←_______________________________________________________MERGE(low,mid,high)endifend MERGESORT8. 多段图动态规划算法procedure FGRAPH(E ,k ,n ,P)1 real COST(n),integerD(n 一1),P(k),r ,j ,k ,n2 ;3 for to 1 by -1do4 设r 是一个这样的结点,(j ,r)∈E 且使c(j ,r)+COST(r)取最小值5 COST(j)← ;6 ;7 repeat8 P(1)←1;P(k)←n ;9 for do10 P(j)←D ( P(j-1) )11 repeat12 end FGRAPH9. n 后问题递归算法procedure RNQUEENS(K)global x( 1:m ),n;for x(k)←1 to _____ doif place( k )= true thenif k = n then ________else_____________endifendifrepeatend ENQUEENS五.设计算法1. 写递归形式的二分检索算法2. 设计三分检索算法3. 有n 个大小相同而重量不同的集装箱,重量分别为(w1,w2,……,wn),已知货船的额定载重量为M ,Σwi>M,i=1,2,3,…,n 。
中南大学2014算法试卷和答案分析报告
中南大学考试试卷2013 -- 2014学年下学期时间100分钟 2014 年6 月6日算法分析与设计课程 48 学时 3 学分考试形式:闭卷专业年级:12级计算机、信安、物联本科生,总分100分,占总评成绩70 % 注:此页不作答题纸,请将答案写在答题纸上一、简答题(本题30分,每小题5分)1、陈述算法在最坏情况下的时间复杂度和平均时间复杂度;这两种评估算法复杂性的方法各自有什么实际意义?1最坏情况下的时间复杂度称最坏时间复杂度。
一般不特别说明,讨论的时间复杂度均是最坏情况下的时间复杂度。
意义:最坏情况下的时间复杂度是算法在任何输入实例上运行时间的上界,这就保证了算法的运行时间不会比任何更长2平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,算法的期望运行时间。
意义:在输入不同的情况下算法的运行时间复杂度可能会发生变化。
平均时间复杂度给出了算法的期望运行时间,有助于算法好坏的评价以及在不同算法之间比较时有一个统一标准2、简单描述分治法的基本思想。
分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。
递归地解这些子问题,然后将各个子问题的解合并得到原问题的解。
3、何谓最优子结构性质?如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质(即满足最优化原理)。
最优子结构性质为动态规划算法解决问题提供了重要线索。
4、何谓P、NP、NPC问题P(Polynomial问题):也即是多项式复杂程度的问题。
NP就是Non-deterministic Polynomial的问题,也即是多项式复杂程度的非确定性问题。
NPC(NP Complete)问题,这种问题只有把解域里面的所有可能都穷举了之后才能得出答案,这样的问题是NP里面最难的问题,这种问题就是NPC问题。
5、试比较回溯法与分支限界法。
1、引言1.1回溯法回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。
中南大学算法试卷
15)
广度优先搜索算法可以搜索到问题所有可行解。
3. ( 20 分)算法设计 (选做两题) (1) (10 分)作一个“三分”检索算法,它首先检查 1/3 处的元素是否与 X 相等,然后检查 2/3 处的元素,等等。这样,或者找到 X,或者将集合缩小到原 来的 1/3。试写出此算法并分析其复杂性。 输入: 已按降序排好序的 n 个元素的数组 A 和 X, X 是被检索的项。 A[0]未用。 (2) (10 分)一个旅行者要驾车从 A 地到 B 地,A、B 两地间距离为 s。A、B 两地之间有 n 个加油站,已知第 i 个加油站离 起点 A 的距 离为 d i 公里, 0= d1 d 2 d n s ,车加满油后可行驶 m 公里,出发之前汽车油箱为空。应 如何加油使得从 A 地到 B 地沿途加油次数最少?给出用贪心法求解该最优化问 题的贪心选择策略,写出求该最优化问题的最优值和最优解的贪心算法,并分析 算法的时间复杂性。 (3)(10 分)给定边加权图 G=(V, E),图 G 中的最大生成树为图 G 中所有生成 树中权值最大的生成树。设计构造最大生成树的算法 4. ( 10 分)求解下列递归式。
中南大学考试试卷
2013 -- 2014 学年 上 学期 时间 100 分钟 2013 年 12 月 18 日 算法分析与设计 课程 48 学时 3 学分 考试形式: 闭 卷
专业年级:11 级计算机、信安、物联本科生,总分 100 分,占总评成绩 70 % 注:此页不作答题纸,请将答案写在答题纸上 1. (20 分 )本期学了很多类算法, 请举例说明下列算法设计策略的使用条件及基本 过程。 (1)动态规划 (2)贪心策略 (3)回溯法 (4)分支限界 2. ( 30 分)请判断下列陈述是否正确。 1) NPC 问题是 NP 问题的子集。 2) NPC 问题没有多项式时间算法。 3) 分支限界法的求解目标是找出满足约束条件的一个解或是在满足约束条 件的解中找出使用某一目标函数值达到极大或极小的解。 4) 对于解决相同问题, 一个 Theta(n log n) 算法 比一个 Theta(n^2) 算法更加 有效。 5) 只有一个奇数点(度为奇数的点)的图,有一个从该点开始的欧拉回路。 6) 如果一个问题是 NPC, 那么在最坏情况下找不到任何确定的多项式时间算 法。 7) 快速排序在最坏情况下的时间复杂度是 O(nlogn)。 8) n!=O(2n )。 9) 给定一个无向无权图 G, 包括 n 个顶点和 m 条边, 有两个顶点 s t, 则 s−t 间最短路径可以在 O(m+n)时间内计算出来。 10) 每个有向无环图刚好有一个拓扑序列。 11) 若 c 是正常数,则 O(cf(n))=O(f(n))。 12) 好的算法在很大程度上取决于问题中数据所采用的数据结构。 13) 14) 用贪心算法解决零钱兑换问题时,总能找到问题的最优解。 动态规划适合于求解满足最优化原理且有大量的子问题重叠的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学考试试卷
2012 -- 2013学年上学期时间120分钟 2013 年1 月4日算法分析与设计课程 48 学时 3 学分考试形式:闭卷
专业年级:10级计算机、信安、物联本科生,总分100分,占总评成绩70 % 注:此页不作答题纸,请将答案写在答题纸上
1. (15分)本期学了很多类算法,请针对以下几类设计策略,举出相应的例子,详细描述算法细节,以说明它们为什么是属于相应的设计策略?
(1)分治法
(2)动态规划
(3)贪心策略
2. (30分)请判断下列陈述是否正确。
(1)根据Master定理,可得到递归式T(n)=4T(n/2)+n2的解为T(n)=O(n2logn). (2)归并排序在最好情况下的时间复杂度为O(nlogn).
(3)具有n个结点的二叉排序树的树高均为O(logn)。
(4)如果一个问题是NP完全问题,它肯定也是NP问题。
(5)给定n个数,可以在O(n)的时间内找到10个最大数与10个最小数之间的中间数。
(6)Kruskal算法利用了动态规划思想寻找给定图中的最小生成树。
(7)n!=O(2n)。
(8)回溯法借鉴了广度优先的策略得到问题的最优解。
(9)对于一个有n个顶点m条边的无向图G,有两个不同的顶点s t,则在O(m+n)的时间内可以找到s与t之间的最短路径。
(10)在最坏情况下,快速排序耗费O(N2)。
(11)如果图中包含负权值的边,则Dijkstra算法不可适用。
(12)分治法是属于自底向上的算法策略;动态规划是属于自顶向下的算法策略。
(13)有一个算法,将n个整数a1,...,a n作为输入,算法的时间复杂度是O(a1+a2+......+a n)。
它是一个多项式时间算法。
(14)有一个图G=(V,E) ,每条边e∈E的权W e>0, 如果一棵生成树T 最小化Σe∈T W e,那么T 也最小化Σe∈T W e2,反之也成立(即图中边的权值都平方后,生成树T仍是这个图的最小生成树)。
(15)给定两个判定性问题Q1、Q2,如果Q1可以在多项式时间内规约到Q2,
则Q1和Q2具有同等难度。
3. (20分)算法设计(选做两题)
(1)(10分)设计一个算法判断一个多边形是否是凸多边形,并分析你的算法的时间性能(注:输入是沿着多边形逆时针的顶点系列)。
(2)(10分)给定图G=(V, E),利用深度优先算法统计图G中连通块的个数。
给出统计算法.
(3)(10分)给定边加权图G=(V, E),图G中的最大生成树为图G中所有生成树中权值最大的生成树。
设计构造最大生成树的算法
4. (10分)求解下列递归式。
T(1)=1.
(1)T(n)=2T(n-1)+1
(2)T(n)=T(n/2)+T(n/4)+n2
5. (25分)对于0/1背包问题,给定n个物品,每个物品都具有一定的权重和价值,寻找物品的一个子集,使得当把这些物品放到背包中时,物品的总重量不会超过背包的容量M。
假设n=4,W={10,7,8,4},V={100,63,56,12},M=16。
(1)设计该问题的动态规划递归式(5分)
(2)给出利用动态规划技术得到最优解的具体过程(10分)
(3)给出利用分支限界技术求得最优解的具体过程(10分)
注:上界函数可定义为:ub=V+(M-w)(v i+1/w i+1)。