中南大学算法试卷

合集下载

2014年12月中南大学网络教育课程考试:算法分析与设计作业参考答案

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学年第一学期期末试卷

---○---○------○---○---学院专业班级学号姓名…………评卷密封线………………密封线内不要答题,密封线外不准填写考生信息,违者考试成绩按分处理………………评卷密封线…………中南大学期末考试试卷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) 答案

中南大学考试试卷答案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。

中南大学算法分析与设计期中测试2011答案

中南大学算法分析与设计期中测试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 分)

算法基础试题及答案

算法基础试题及答案

算法基础试题及答案一、单项选择题(每题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. 算法的时间复杂度和空间复杂度有什么区别?答案:时间复杂度主要关注算法执行所需的时间,它通常与算法中操作的数量有关,而空间复杂度则关注算法执行过程中所需的存储空间。

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

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

数据结构试卷(一) .................. 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 进制 表示。

算法考卷参考答案

算法考卷参考答案

一、选择题(每题1分,共5分)A. Dijkstra算法B. Kruskal算法C. Huffman编码D. 动态规划算法2. 下列排序算法中,哪个算法的时间复杂度最稳定?A. 冒泡排序B. 快速排序C. 堆排序D. 插入排序A. 二分查找B. 深度优先搜索C. 广度优先搜索D. 动态规划A. 初始化状态B. 确定状态转移方程C. 计算最优值D. ABC都是A. Floyd算法B. Warshall算法C. Prim算法D. BellmanFord算法二、判断题(每题1分,共5分)1. 算法的空间复杂度与时间复杂度成正比。

(×)2. 贪心算法总能得到最优解。

(×)3. 快速排序的平均时间复杂度为O(nlogn)。

(√)4. 二分查找算法适用于顺序存储的有序表。

(√)5. 深度优先搜索和广度优先搜索在遍历图时,时间复杂度相同。

(×)三、填空题(每题1分,共5分)1. 算法的五个基本特性分别是:可行性、确定性、______、有穷性和输入输出。

2. 在排序算法中,堆排序的时间复杂度为______。

3. 求解背包问题通常采用______算法。

4. 图的遍历方法有深度优先搜索和______。

5. 在动态规划算法中,状态转移方程描述了______之间的关系。

四、简答题(每题2分,共10分)1. 简述冒泡排序的基本思想。

2. 什么是贪心算法?请举例说明。

3. 简述二分查找算法的基本步骤。

4. 什么是动态规划算法?它适用于哪些问题?5. 请列举三种常见的图遍历算法。

五、应用题(每题2分,共10分)1. 设有数组arr = [3, 5, 1, 4, 2],请用冒泡排序算法对数组进行排序。

2. 给定一个整数数组nums,请找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

3. 编写一个递归函数,实现求斐波那契数列的第n项。

A B| |C DA B (3)| |C D (4)六、分析题(每题5分,共10分)def func(n):sum = 0for i in range(n):for j in range(i):sum += 1return sum2. 给定一个字符串str,请设计一个算法,找出最长不重复子串的长度。

2022年中南大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

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年-2016年【数据结构】真题

2015年回忆数据结构:
算法题,记得两个
1、求连通分量个数,与2013-4-2一样
2、图的邻接矩阵存储转邻接表存储
应用题,记得两个
1、常规的哈夫曼树,与2014-4-2类似
2、根据二叉树的先序遍历序列和中序遍历序列画出二叉树并写出后序遍历序列,与2011-4-3类似
名词解释
数据结构
16年真题回忆:
算法题:最后一大题:(括号匹配用栈来匹配,用伪代码实现),这种题一般人想不到或者觉得不可能出,但是王道书上的原题,王道书大家一定要好好看。

求图深度遍历和广度遍历之类的算法,具体不是太清楚了,但结果就是这两个算法之一,选个最优查找算法;
然后就是一个插入链表还是。

自己把链表这块王道数据结构看好了就行,毫无压力
还有一个大题就是考的堆;堆的排序算法,比如建一个大堆然后排序输出;堆的名词解释等;然后一个大题是考的哈夫曼树的组成过程,比较简单啦,但是要细心。

选择填空很基础:和以前的真题难度差不多,必须争取满分,
填空题要引起重视,两分一个,一定要把严蔚敏的书上多看几遍,
像串的空串和空格串的区别基本上是必考,
题量比较大,大家引起注意;。

中南大学2014算法试卷和答案分析报告

中南大学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回溯法回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。

中南大学算法试卷

中南大学算法试卷
1/2
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) 用贪心算法解决零钱兑换问题时,总能找到问题的最优解。 动态规划适合于求解满足最优化原理且有大量的子问题重叠的问题。

中南大学算法试卷

中南大学算法试卷

中南大学考试试卷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具有同等难度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)。

相关文档
最新文档