中南大学算法分析练习(45分钟)

合集下载

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.设计一个分治算法计算一棵二叉树的高度。

中南大学数电考题全四套(含答案)

中南大学数电考题全四套(含答案)

中南大学信息院《数字电子技术基础》期终考试试题(110分钟)(第一套)一、填空题:(每空1分,共15分)1.逻辑函数Y=AB+C的两种标准形式分别为()、()。

2.将2004个“1”异或起来得到的结果是()。

3.半导体存储器的结构主要包含三个部分,分别是()、()、()。

4.8位D/A转换器当输入数字量10000000为5v。

若只有最低位为高电平,则输出电压为()v;当输入为10001000,则输出电压为()v。

5.就逐次逼近型和双积分型两种A/D转换器而言,()的抗干扰能力强,()的转换速度快。

6.由555定时器构成的三种电路中,()和()是脉冲的整形电路。

7.与PAL相比,GAL器件有可编程的输出结构,它是通过对()进行编程设定其()的工作模式来实现的,而且由于采用了()的工艺结构,可以重复编程,使它的通用性很好,使用更为方便灵活。

二、根据要求作题:(共15分)1.1.将逻辑函数P=AB+AC写成与或非型表达式,并用集电极开路门来实现。

2.2.图1、2中电路均由CMOS门电路构成,写出P、Q的表达式,并画出对应A、B、C的P、Q波形。

三、分析图3所示电路,写出F1、F2的逻辑表达式,说明电路的逻辑功能。

图中所用器件是8选1数据选择器74LS151。

(10分)四、设计一位十进制数的四舍五入电路(采用8421BCD码)。

要求只设定一个输出,并画出用最简与非门实现的逻辑电路图。

(15分)五、已知电路及CP、A的波形如图5(a)(b)所示,设触发器的初态均为“0”,试画出输出端B和C的波形。

(8分)BC六、用T触发器和异或门构成的某种电路如图6(a)所示,在示波器上观察到波形如图6(b)所示。

试问该电路是如何连接的?请在原图上画出正确的连接图,并标明T的取值。

(6分)七、电路如图7所示,其中RA=RB=10kΩ,C=0.1μf,试问:1.在Uk为高电平期间,由555定时器构成的是什么电路,其输出U0的频率f0=? 2.分析由JK触发器FF1、FF2、FF3构成的计数器电路,要求:写出驱动方程和状态方程,列出状态转换表,画出完整的状态转换图;3.设Q3、Q2、Q1的初态为000,Uk所加正脉冲的宽度为T w=6/f0,脉冲过后Q3、Q2、Q1将保持在哪个状态?(共15分)八、图8所示是16*4位ROM和同步十六进制加法计数器74LS161组成的脉冲分频电路。

中南大学现代远程教育课程考试复习试题及参考答案

中南大学现代远程教育课程考试复习试题及参考答案

中南大学现代远程教育课程考试复习试题及参考答案《算法分析与设计》一简答题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。

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

2014中南大学网络教育课程考试:算法分析与设计复习试题及答案解析

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、写出多段图最短路经动态规划算法求解下列实例的过程,并求出最优值。

算法分析考试题及答案

算法分析考试题及答案

算法分析考试题及答案一、单项选择题(每题2分,共20分)1. 以下哪个算法的时间复杂度是O(n^2)?A. 冒泡排序B. 二分查找C. 快速排序D. 线性搜索答案:A2. 在下列排序算法中,哪种算法的平均时间复杂度为O(n log n)?A. 插入排序B. 选择排序C. 归并排序D. 堆排序答案:C3. 动态规划与分治法的主要区别在于:A. 递归的使用B. 问题的分解方式C. 存储中间结果D. 时间复杂度答案:C4. 以下哪种数据结构最适合实现图的邻接表?A. 数组B. 链表C. 栈D. 队列答案:B5. 在图的遍历中,深度优先搜索(DFS)使用的是哪种数据结构?A. 栈B. 队列C. 链表D. 数组答案:A6. 哈希表解决冲突的方法不包括以下哪种?A. 开放寻址法B. 链地址法C. 线性探测法D. 二分查找法答案:D7. 以下哪种算法是用于解决旅行商问题(TSP)的近似算法?A. 动态规划B. 贪心算法C. 分治法D. 遗传算法答案:D8. 在算法分析中,大O表示法描述的是算法的:A. 最优情况时间复杂度B. 平均情况时间复杂度C. 最坏情况时间复杂度D. 实际运行时间答案:C9. 以下哪个排序算法是稳定的?A. 快速排序B. 归并排序C. 堆排序D. 选择排序答案:B10. 算法的时间复杂度为O(1)意味着:A. 算法运行时间与输入大小无关B. 算法运行时间与输入大小成正比C. 算法运行时间与输入大小成对数关系D. 算法运行时间与输入大小成平方关系答案:A二、填空题(每题2分,共20分)1. 在算法分析中,我们通常使用______来描述算法的运行时间。

答案:大O表示法2. 递归算法的时间复杂度通常可以用______来表示。

答案:递归关系式3. 在排序算法中,______排序算法的时间复杂度在最好、最坏和平均情况下都是O(n)。

答案:桶4. 动态规划算法通常用于解决具有______性质的问题。

2020-2021《算法分析》期末课程考试试卷(含答案)

2020-2021《算法分析》期末课程考试试卷(含答案)

2020-2021《算法分析》课程考试试卷适用专业:考试日期:闭卷所需时间:120分钟总分:100分一、(15分)n个作业要在由2台机器A和B组成的流水线上处理完成,作业处理的顺序先在A 上处理,然后在B上处理,作业i在A和B的处理时间分别为ai和bi,1≤i≤n。

用动态规划算法确定这n 个作业的最优处理顺序,使得从第一个作业在A上开始处理,到最后一个作业在B上完成处理所需要的时间最少。

写出动态规划算法的递推式,并用Johnson法则研究实例:(a1,a2,a3,a4,a5,a6)=(2,5,7,10,5,2),(b1,b2,b3,b4,b5,b6)=(3,8,4,11,3,4)。

二、(10分)荷兰国旗问题:设有一个仅仅由红,白,蓝这三种颜色的条块组成的条块序列。

请设计一个时间复杂度为O(n)的算法,使得这些条块按红,白,蓝的顺序序列排好,即排成荷兰国旗图案。

(提示:请参照快速分类算法)。

三、(15分)长江游艇俱乐部在长江上设置了n个游艇出租站,游客可在这些游艇出租站租用游艇,并在下游的任何一个游艇出租站归还游艇。

游艇出租站i到游艇出租站j之间的租金为r(i,j),1≤i<j≤n。

试设计一算法,计算出从游艇出租站i 到游艇出租站j所需要的最少租金。

四、删数问题(15分)键盘输入一个高精度的正整数N,去掉其中任意S个数字后剩下的数字按原左右次序组成一个新的正整数。

对给定的N和S,寻找一种用贪心法方案使得剩下的数字组成的新数最小。

(N 不超过240位)五、(15分)整数变换问题:关于整数i的变换f和g的定义如下:f(i)=3i;g(i)=[i/2].试设计一算法,对于任意给定两个整数n和m,用最少的f和g变换次数将整数n变换为m。

当整数n 不可能变换为整数m时,算法如何处理?(要求描述出剪支函数)六、(15分)格雷码问题一个长度为2n的序列,满足:(1)、每个元素的都是长度为n比特的串。

(2)、序列中无相同的元素。

南华大学 算法设计与分析 期末考题

南华大学 算法设计与分析 期末考题

南华大学算法设计与分析期末考题
1.算法分析的两个主要方面是( )。

A.空间复杂度和时间复杂度
B.正确性和简单性
C.可读性和文档性
D.数据复杂度和程序复杂度
2.计算机算法指的是( )。

A.计算方法
B.排序方法
C. 解决问题的方法和过程
D.调度方法
3.多阶段决策问题就是要在可以选择的那些策略中间选取一个
( )策略使在预定的标准下达到最好的效果。

A.最优
B.最差
C.平衡
D.任意
4.根据排序元素所在位置的不同,排序分( )。

A.内排序和外排序
B.首排序和尾排序
C.顺序排序和逆序排序
D.堆排序和栈排序
5.算法必须具备输入、输出和()等5个特性。

A.可执行性、可移植性和可扩充性
B.可行性、确定性和有穷性
C.确定性、有穷性和稳定性
D.易读性、稳定性和安全性
6. 与分治法不同的是,适合于用动态规划求解的问题( )
A.经分解得到子问题往往不是互相独立的
B.经分解得到子问题往往是互相独立的
C.经分解得到子问题往往是互相交叉的
D.经分解得到子问题往往是任意的。

中南大学算法试卷

中南大学算法试卷

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

算法分析考试题及答案

算法分析考试题及答案

算法分析考试题及答案一、选择题(每题2分,共10分)1. 以下哪种算法的时间复杂度为O(n^2)?A. 冒泡排序B. 二分查找C. 快速排序D. 线性搜索答案:A2. 在图论中,下列哪个算法用于寻找最短路径?A. 迪杰斯特拉算法B. 克鲁斯卡尔算法C. 普里姆算法D. 拓扑排序答案:A3. 递归算法的基本特征不包括以下哪一项?A. 递归终止条件B. 递归工作条件C. 循环调用D. 递归方程答案:C4. 动态规划算法与贪心算法的主要区别在于:A. 贪心算法每一步选择局部最优解B. 动态规划算法每一步选择局部最优解C. 动态规划算法需要解决重叠子问题D. 贪心算法需要解决重叠子问题答案:C5. 在数据库索引中,哪种类型的索引可以提高查询效率?A. 哈希索引B. B树索引C. 位图索引D. 以上都是答案:D二、填空题(每题3分,共15分)1. 算法的时间复杂度是指算法执行过程中所需基本操作的______与输入数据量之间的关系。

答案:数量2. 在排序算法中,______排序是一种稳定的排序算法。

答案:归并3. 算法的空间复杂度是指算法执行过程中所需的______量。

答案:存储4. 在图的遍历中,深度优先搜索(DFS)使用的栈是______。

答案:非必需的5. 快速排序算法中,基准元素的选择可以是______。

答案:任意元素三、简答题(每题10分,共20分)1. 请简述算法复杂度分析中,最好情况、最坏情况和平均情况的定义。

答案:最好情况是指算法在处理特定输入时能达到的最优性能,即算法执行步骤最少的情况。

最坏情况是指算法在处理特定输入时能达到的最差性能,即算法执行步骤最多的情况。

平均情况是指算法在处理所有可能输入的平均性能,通常通过统计所有输入情况的性能来计算。

2. 描述动态规划算法解决问题的一般步骤。

答案:动态规划算法解决问题的一般步骤包括:1) 定义问题的递归解法;2) 识别并解决重叠子问题;3) 存储子问题的解以避免重复计算;4) 从基本情况开始,逐步构建问题的解;5) 利用存储的子问题解来构建原问题的解。

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

算法设计与分析课后习题

算法设计与分析课后习题

算法设计与分析课后习题(总8页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第一章1. 算法分析题算法分析题1-1 求下列函数的渐进表达式(1). 3n^2 + 10n < 3n^2 + 10n^2 = 13n^2 = O(n^2)(2). n^2 / 10 + 2^n当n>5是,n^2 < 2 ^n所以,当n >= 1时,n^2/10 < 2 ^n故: n^2/10 + 2^n < 2 ^n + 2^n = 2*2^n = O(2^n)(3). 21 + 1/n < 21 + 1 = 22 = O(1)(4). log(n^3)=3log(n)=O(log(n))(5). 10log(3^n) = (10log3)n = O(n)算法分析题1-6(1)因为:f(n)=log(n^2) = 2log(n); g(n) = log(n) + 5所以:f(n)=Θ(log(n)+5) =Θ(g(n))(2)因为:log(n) < √n ; f(n) = 2log(n); g(n)= √n所以:f(n) = O(g(n))(3)因为:log(n) < n; f(n) = n; g(n) = log(n^2) = 2log(n)所以;f(n) = Ω(g(n))(4)因为:f(n) = nlogn +n; g(n) = logn所以:f(n) =Ω(g(n))(5)因为: f(n) = 10; g(n) = log(10)所以:f(n) =Θ(g(n))(6)因为: f(n)=log^2(n); g(n) = log(n)所以: f(n) ==Ω(g(n))(7)因为: f(n) = 2^n < 100*2^n; g(n)=100n^2; 2^n > n ^2所以: f(n) = Ω(g(n))(8)因为:f(n) = 2^n; g(n) = 3 ^n; 2 ^n < 3 ^n所以: f(n) = O(g(n))习题1-9 证明:如果一个算法在平均情况下的计算时间复杂性为Θ(f(n)),该算法在最坏情况下所需的计算时间为Ω(f(n)).分析与解答:因此,Tmax(N) = Ω(Tavg(N)) = Ω(Θ(f(n)))=Ω(f(n)).第二章算法分析题2-3 设a[0:n-1]是已经排好序的数组。

中南大学算法设计与分析实验报告

中南大学算法设计与分析实验报告

算法设计与分析基础——实验报告姓名:学号:0909122824班级:信安1202实验一分治—最近点对一.问题ProblemHave you ever played quoit in a playground? Quoit is a game in which flat rings are pitched at some toys, with all the toys encircled awarded.In the field of Cyberground, the position of each toy is fixed, and the ring is carefully designed so it can only encircle one toy at a time. On the other hand, to make the game look more attractive, the ring is designed to have the largest radius. Given a configuration of the field, you are supposed to find the radius of such a ring.Assume that all the toys are points on a plane. A point is encircled by the ring if the distance between the point and the center of the ring is strictly less than the radius of the ring. If two toys are placed at the same point, the radius of the ring is considered to be 0.InputThe input consists of several test cases. For each case, the first line contains an integer N (2 <= N <= 100,000), the total number of toys in the field. Then N lines follow, each contains a pair of (x, y) which are the coordinates of a toy. The input is terminated by N = 0.OutputFor each test case, print in one line the radius of the ring required by the Cyberground manager, accurate up to 2 decimal places.二.分析思路题目是给n个点的坐标,求距离最近的一对点之间距离的一半。

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

中南大学算法分析练习试卷
总计55分时间45分钟
一、填空题(本题10分,每空1分)
1、回溯法在解空间树T上的搜索方式是【1】。

2、贪心算法总是做出在当前看来最好的选择。

也就是说贪心算法并不从
【2】考虑,它所做出的选择只是在某种意义上的【3】。

3、算法就是一组有穷的【4】,它们规定了解决某一特定类型问题的【5】。

4、算法的复杂性是【6】的度量,是评价算法优劣的重要依据。

5、f(n)= 6×2n+n2,f(n)的渐进性态f(n)= O( 【7】 )
6、许多可以用贪心算法求解的问题一般具有2个重要的性质:【8】性
质和【9】性质。

7、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子
问题,这些子问题互相【10】且与原问题相同。

二、选择题(本题10分,每小题1分)
1、分支限界法与回溯法都是在问题的解空间树T上搜索问题的解,二者( )。

A.求解目标不同,搜索方式相同
B.求解目标不同,搜索方式也不同
C.求解目标相同,搜索方式不同
D.求解目标相同,搜索方式也相同
2、回溯法在解空间树T上的搜索方式是( )。

A.深度优先
B.广度优先
C.最小耗费优先
D.活结点优先3、在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( )。

A.回溯法
B.分支限界法
C.回溯法和分支限界法
D.回溯法求解子集树
4、以下关于判定问题难易处理的叙述中正确的是( )。

A.可以由多项式时间算法求解的问题是难处理的
B.需要超过多项式时间算法求解的问题是易处理的
C.可以由多项式时间算法求解的问题是易处理的
D.需要超过多项式时间算法求解的问题是不能处理的
5、设f(N),g(N)是定义在正数集上的正函数,如果存在正的常数C和自然数N0,使得当N≥N0时有f(N)≤Cg(N),则称函数f(N)当N充分大时有上界g(N),记作f(N)=O(g(N)),即f(N)的阶( )g(N)的阶。

A.不高于
B.不低于
C.等价于
D.逼近
6、对于含有n个元素的子集树问题,最坏情况下其解空间的叶结点数目为( )。

A.n!
B.2n
C.2n+1-1
D. 2n-1
7、程序可以不满足以下( )特征
A.输入
B.输出
C.确定性
D.有限性
8、以下( )不能在线性时间完成排序
A.计数排序
B.基数排序
C.堆排序
D.桶排序
9、以下( )不一定得到问题的最优解
A.贪心算法
B.回溯算法
C.分支限界法
D.动态规划法
10、以下()不包括在图灵机结构中
A.控制器
B.读写磁头
C.计算器
D.磁带
三、算法填空(本题16分,每空2分)
1、Dijkstra算法是解单源最短路径问题的贪心算法。

请你阅读下面伪代码并在空白处填上适当的代码。

// G是一个n个结点的有向图,它由成本邻接矩阵w[u,v]表示,D[v]表示结点v到源结点s的最短路径长度,p[v]记录结点v的父结点。

Init-single-source(G,s)
1.for each vertex v∈V[G]
2.do {d[v]=∞ p[v]=NIL}
3. d[s]=0
Relax(u,v,w)
1.if 【1】
2.then {d[v]=d[u]+w[u,v]
p[v]=u
}
dijkstra(G,w,s)
1. 【2】
2. S=Φ
3. Q=V[G]
4.while Q<> 【3】
do u=min(Q)
S=S∪{u}
for each vertex v∈adj[u] //所有u的邻接点 v
do 【4】
2、某工厂预计明年有N个新建项目,每个项目的投资额 w[k]及其投资后的收益 v[k]已知。

投资总额为C,问如何选择项目才能使总收益最大。

Invest-Program( )
{ for (j=0;j<=C;j++)
【5】
for (j=w[n];j<=C;j++)
m[n][j]=v[n];
for (i=n-1;i>1;i--)
{ int jMax=min(w[i]-1,c);
for(j=0;j<=jMax;j++)
m[i][j]= 【 6 】 ;
for (j=w[i];j<=C;j++)
m[i][j]=max( 【7 】 );
}
m[1][c]=m[2][c];
if( 【 8 】 )
m[1][c]=max(m[1][c],m[2][c-w[1]]+v[1]);
}
四、归纳技术应用题(共4分)
考虑使用基数排序算法对下列8 个数据进行排序,请给出中间排序的结果。

2756 7352 3725 3762 5273 2375 5732 5627
五、贪心法应用题(共5 分)
用Prim算法求下图的最小生成树。

要求用图或表格展示主要计算过程(统一从A结点开始)。

六、动态规划法应用(共10 分)
请使用动态规划法求解下列0-1 背包问题实例:n=4 个物品,大小分别为W={2,3,4,6},价值分别为P={3,6,5,9},背包容量为M=10。

1、(4 分)请给出递推计算公式(用V[i][j]表示在物品1,2,⋯,i 中挑选物品装入容量是j 的背包中的最大价值)。

2、(6 分)根据递推计算公式用二维表格展示出计算过程,并给出最优结。

相关文档
最新文档