中南大学算法试卷
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地址属于哪个网络或子网,以及确定网络中的主机数量。
中南大学《科学计算与数学建模》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+”的值为( )。
中南大学现代远程教育课程考试复习试题及参考答案

中南大学现代远程教育课程考试复习试题及参考答案《算法分析与设计》一简答题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 ,n 2; 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 ENQUEENS1. 写递归形式的二分检索算法2. 设计三分检索算法3. 有n 个大小相同而重量不同的集装箱,重量分别为(w1,w2,……,wn),已知货船的额定载重量为M ,Σwi>M,i=1,2,3,…,n 。
中南大学大三软件专业算法设计与分析试卷及答案

中南大学20XX 学年第二学期?计算机算法设计与分析?试题院系:软件学院 专业:软件工程 年级:20XX 级一.计算题〔35分〕1.(6分) 对以下各组函数f(n)和g(n),确定f(n)=O(g(n))或f(n)=Ω(g(n))或f(n)=θ(g(n))。
(1) f(n)=3n ,g(n)=2n(2) f(n)=log n + 5,g(n)=log n 2(3) f(n)=log n ,g(n)=n答:(1) f(n) = Ω(g(n)) (2分)(2) f(n) = θ(g(n)) (2分)(3) f(n) = O(g(n)) (2分)2.〔8分〕采用动态规划策略,计算a={5,-3,7,-4,-5,9,-2,10,-3,2}的最大子段和,并给出这个最大子段和的起始下标和终止下标。
[设数组a 中的元素下标从1开始。
]要求给出过程。
答:b[1]=5;b[2]=max{b[1]+a[2],a[2]}=max{2,-3}=2b[3]=max{b[2]+a[3],a[3]}=max{9,7}=9b[4]=max{b[3]+a[4],a[4]}=max{5,-4}=5b[5]=max{b[4]+a[5],a[5]}=max{0,-5}=0b[6]=max{b[5]+a[6],a[6]}=max{9,9}=9b[7]=max{b[6]+a[7],a[7]}=max{7,-2}=7b[8]=max{b[7]+a[8],a[8]}=max{17,10}=17b[9]=max{b[8]+a[9],a[9]}=max{14,-3}=14b[10]=max{b[9]+a[10],a[10]}=max{16,2}=16(上述每两行1分,共5分)最大子段和为17〔1分〕〔假设数组下标从1开始〕起始下标:6〔1分〕,终止下标:8〔1分〕 〔假设数组下标从0开始〕起始下标:5〔0.5分〕,终止下标:7〔0.5分〕3.〔11分〕设有3件工作分配给3个人,将工作i 分配给第j 个人所花的费用为C ij ,现将为每一个人都分配1件不同的工作,并使总费用到达最小。
算法分析与设计考试试卷(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。
中南大学十套数据结构试题及答案

中南大学十套数据结构试题及答案数据结构试卷(1)................1数据结构试卷(2)................4数据结构试卷(3)................6数据结构试卷(4)................8数据结构试卷(5)................11数据结构试卷(6)................14数据结构试卷(7)................16数据结构试卷(8)................18数据结构试卷(9)................20数据结构试卷(10)................2 3数据结构试卷(1)参考答案.........26数据结构试卷(2)参考答案 (27)数据结构试卷(3)参考答案.........28数据结构试卷(4)参考答案 (30)数据结构试卷(5)参考答案.........32数据结构试卷(6)参考答案 (33)数据结构试卷(7)参考答案.........36数据结构试卷(8)参考答案...37数据结构试卷(9)参考答案.........38数据结构试卷(10)参考答案 (39)数据结构试卷(1)1,单项题(每题2分,共20分)1。
堆栈和队列的共同特征是()A.仅允许在端点b插入和删除元素。
所有元素都是先进先出。
所有元素都是先进先出。
没有公共基础2。
以链接方式存储的队列。
在插入操作过程中()。
A .只应修改头部指针b。
头指针和尾指针都应该修改c .只有尾指针d .头指针和尾指针都应该修改3。
下列哪种数据结构是非线性结构?()队列b堆栈c线性表d二叉树4。
有一个二维数组[m][n]。
假设[0][0]存储在644(10)中,[2][2]存储在676(10)中。
每个元素占据一个空间。
问一问[3][3)(10)它储存在哪里?脚注(10)用十进制表示a . 688b . 678c . 692d . 6965。
这棵树最适合用来代表()a .有序数据元素b .无序数据元素c .元素之间具有分支层次关系的数据d .元素之间没有连接的数据6。
- 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,...,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具有同等难度。
3. (20分)算法设计(选做两题)
(10分)设计一个算法判断一个多边形是否是凸多边形,并分析你的算法的时间性能(注:(1)
输入是沿着多边形逆时针的顶点系列)。
(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)(vi+1/wi+1)。