华南师范大学 算法设计试卷
算法设计与分析期末试卷A卷
算法设计与分析期末试卷A卷一、选择题1.二分搜索算法是利用(A)实现的算法。
A、分治策略B、动态规划法C、贪心法D、回溯法解析:二分搜索是一种基于分治策略的算法。
2.回溯法解旅行售货员问题时的解空间树是(A)。
A、子集树B、排列树C、深度优先生成树D、广度优先生成树解析:旅行售货员问题的解空间树是子集树,因为每个结点代表一个城市的集合。
3.下列算法中通常以自底向上的方式求解最优解的是(B)。
A、备忘录法B、动态规划法C、贪心法D、回溯法解析:动态规划法通常以自底向上的方式求解最优解。
4.下面不是分支界限法搜索方式的是(D)。
A、广度优先B、最小耗费优先C、最大效益优先D、深度优先解析:分支界限法搜索方式包括广度优先、最小耗费优先和最大效益优先,但不包括深度优先。
5.采用贪心算法的最优装载问题的主要计算量在于将集装箱依其重量从小到大排序,故算法的时间复杂度为(B)。
A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)解析:最优装载问题采用贪心算法的主要计算量在于将集装箱依其重量从小到大排序,因此时间复杂度为O(nlogn)。
6.分支限界法解最大团问题时,活结点表的组织形式是(B)。
A、最小堆B、最大堆C、栈D、数组解析:分支限界法解最大团问题时,活结点表的组织形式是最大堆。
7、下面问题(B)不能使用贪心法解决。
A 单源最短路径问题C 最小花费生成树问题B N皇后问题D 背包问题解析:N皇后问题不能使用贪心法解决。
8.下列算法中不能解决0/1背包问题的是(A)A 贪心法B 动态规划C 回溯法D 分支限界法解析:贪心法不能解决0/1背包问题。
9.背包问题的贪心算法所需的计算时间为(B)A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)解析:背包问题的贪心算法所需的计算时间为O (nlogn)。
二、填空题1.算法的复杂性有时间复杂性和空间复杂性之分。
2.算法是由若干条指令组成的有穷序列,且要满足输入、输出、确定性和有穷性四条性质。
华师17春秋学期《算法设计与分析》在线作业
华师《算法设计与分析》在线作业一、单选题(共20道试题,共60分。
)V1.哈弗曼编码的贪心算法所需的计算时间为()。
A.O(n2^2)B.O(nlogn)C.O(2^n)D.O(n)2.实现循环赛日程表利用的算法是()。
A.分治策略B.动态规划法C.贪心法D.回溯法3.已知一个有序表为(11,22,33,44,55,66,77,88,99),则折半查找55需要比较()次。
A.1B.2C.3D.44.最大效益优先是()的一搜索方式。
A.分支界限法B.动态规划法C.贪心法D.回溯法5.矩阵连乘问题的算法可由()设计实现。
A.分支界限算法B.动态规划算法C.贪心算法D.回溯算法6.下列哪些是采用广度优先策略搜索?()。
A.分支界限法B.动态规划法C.贪心法D.回溯法7.备忘录方法是那种算法的变形。
()A.分治法B.动态规划法C.贪心法D.回溯法8.蒙特卡罗算法是()的一种。
A.分支界限算法B.概率算法C.贪心算法D.回溯算法9.循环队列的队头和队尾指针分别为front和rear,则判断循环队列为空的条件是()。
A.front==rearB.front==0C.rear==0D.front=rear+110.设计一个判别表达式中括号是否配对的算法,采用()数据结构最佳。
A.顺序表B.链表C.队列D.栈11.Strassen矩阵乘法是利用()实现的算法。
A.分治策略B.动态规划法C.贪心法D.回溯法12.下列随机算法中运行时有时候成功有时候失败的是()A.数值概率算法B.舍伍德算法C.拉斯维加斯算法D.蒙特卡罗算法13.回溯法解旅行售货员问题时的解空间树是()。
A.子集树B.排列树C.深度优先生成树D.广度优先生成树14.一个顺序栈S,其栈顶指针为top,则将元素e入栈的操作是()。
A.*S->top=e;S->top++;B.S->top++;*S->top=e;C.*S->top=eD.S->top=e;15.实现棋盘覆盖算法利用的算法是()。
(完整word版)算法设计试题(word文档良心出品)
一、选择题(15*2分)1.算法分析是( C)A.将算法用某种程序设计语言恰当地表示出来B.在抽象数据集合上执行程序,以确定是否会产生错误的结果C.对算法需要多少计算时间和存储空间作定量分析D.证明算法对所有可能的合法输入都能算出正确的答案2.算法与程序的区别在于算法具有(C )A.能行性B.确定性C.有穷性D.输入和输出3.记号Ω的定义正确的是(B)A.O(g(n)) = { f(n) | 存在正常数c和n0使得当n≥n0 有f(n) ≤ cg(n) }B.O(g(n)) = { f(n) | 存在正常数c和n0使得当n≥n0有 cg(n) ≤ f(n) }>0使得对所有n≥n0 C.(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n有f(n)<cg(n) }D.(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n>0使得对所有n≥n0有cg(n) < f(n) }4.衡量一个算法好坏的标准是(C )A.运行速度快B. 占用空间少C.时间复杂度低D. 代码短5.二分搜索算法是利用(A)实现的算法。
A.分治法B.动态规划法C.贪心法D.回溯法6.下面问题(B )不能使用贪心法解决。
A. 单源最短路径问题B. N皇后问题C. 最小代价生成树问题D. 背包问题7.用贪心法设计算法的关键是( B )。
A.将问题分解为多个子问题来分别处理B.选好最优量度标准C.获取各阶段间的递推关系式D.满足最优性原理8.找最小生成树的算法Kruskal的时间复杂度为( D )(其中n为无向图的结点数,m为边数)A.O(n2) B.O(mlogn) C.O(nlogm) D.O(mlogm)9.回溯法搜索状态空间树是按照(C )的顺序。
A.中序遍历B.广度优先遍历C.深度优先遍历D.层次优先遍历10. 一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B )A.重叠子问题B.最优子结构性质C.最优量度标准性质D.定义最优解11.程序块(A)是回溯法中遍历排列树的算法框架程序。
华南师范大学算法设计与分析AB卷及答案
27 13
31
18 45
16 17
53
五、 动态规划法的应用(15 分) 考虑用算法 MATCHAIN 矩阵链相乘的方法把下面的 4 个矩阵相乘,
M 1 : 4 × 5, M 2 : 5 × 3, M 3 : 3 × 6, M 4 : 6 × 4, M 5 : 4 × 5
A2-
C[1,1]=0 C[1,2]=60 C[1,3]=132 C[1,4]=180
C[1,5]=252
M1
M 1M 2
C[2,2]=0
(M 1 M 2 )M 3
C[2,3]=90
(M 1 M 2 )(M 3 M 4 ) (M 1 M 2 )((M 3 M 4 ) M 5 )
六、 贪心算法的应用(10 分) 在下面的有向图中应用算法 DIJSTRA,假设顶点 1 是起始顶点。
9 7
2 1 12 3
2
4 2
8 6 4
3
5
5
七、 回溯法的应用(20 分) 1、请描述回溯算法的一般步骤。 2、在回溯法的应用的综合性实验中,您选做了哪一道题目,请简要叙述你是 如何用回溯法解决这个问题的,即给出该问题下回溯法的几个要素。 3、谈谈你在这次综合实验中的收获和感想。
∞ 14 14 14
七、 回溯法的应用(20 分) 1、请描述回溯算法的一般步骤。 (6 分) 2、在回溯法的应用的综合性实验中,您选做了哪一道题目,请简要叙述你是如 何用回溯法解决这个问题的,即给出该问题下回溯法的几个要素。 (9 分) 3、谈谈你在这次综合实验中的收获和感想。 (5 分) 1、回溯法一般步骤包括以下几点: (每答对 1 点给 2 分,此问 6 分) 1)将解空间表示成一棵树(解空间树) ,求解问题就转化为在树 T 中搜索解 对应的树结点; 2)定义剪枝操作(需考虑约束条件和目标值两方面) ; 3)从树 T 的根结点开始,用深度优先法搜索该树,而跳过肯定不包含问题 解对应的结点的子树的搜索(剪枝) ,以提高效率。 2、解空间描述正确给 5 分,剪枝操作描述正确给 4 分,总体描述正确酌情给分。 (9 分) 3、根据回答的实际情况酌情给分。 (5 分)
(完整word版)计算机算法设计分析试题及答案
算法设计与分析试卷一、填空题(20分,每空2分)1、算法的性质包括输入、输出、___、有限性。
2、动态规划算法的基本思想就将待求问题_____、先求解子问题,然后从这些子问题的解得到原问题的解。
3、设计动态规划算法的4个步骤:(1)找出____,并刻画其结构特征。
(2)_______。
(3)_______。
(4)根据计算最优值得到的信息,_______。
4、流水作业调度问题的johnson算法:(1)令N1=___,N2={i|ai>=bj};(2)将N1中作业依ai的___。
5、对于流水作业高度问题,必存在一个最优调度π,使得作业π(i)和π(i+1)满足Johnson不等式_____。
6、最优二叉搜索树即是___的二叉搜索树。
二、综合题(50分)1、当(a1,a2,a3,a4,a5,a6)=(-2,11,-4,13,-5,-2)时,最大子段和为∑ak(2<=k<=4)____(5分)2、由流水作业调度问题的最优子结构性质可知,T(N,0)=______(5分)3、最大子段和问题的简单算法(10分)int maxsum(int n,int *a,int & bestj){intsum=0;for (int i=1;i<=n;i++)for (int j=i;j<=n;j++)int thissum=0;for(int k=i;k<=j;k++)_____;if(thissum>sum){sum=thissum;______;bestj=j;}}return sum;}4、设计最优二叉搜索树问题的动态规划算法OptimalBinarysearchTree? (15分)Void OptimalBinarysearchTree(int a,int n,int * * m, int * * w) {for(int i=0;i<=n;i++) {w[i+1][i]=a[i]; m[i+1][i]=____;} for(int r=0;r<n;r++)for(int i=1;i<=n-r;i++){int j=i+r;w[i][j]=w[i][j-1]+a[j]+b[j];m[i][j]=______;s[i][j]=i;for(int k=i+1;k<=j;k++){int t=m[i][k-1]+m[k+1][j];if(_____) {m[i][j]=t; s[i][j]=k;}}m[i][j]=t; s[i][j]=k;}}5、设n=4, (a1,a2,a3,a4)=(3,4,8,10), (b1,b2,b3,b4)=(6,2,9,15) 用两种方法求4个作业的最优调度方案并计算其最优值?(15分)三、简答题(30分)1、将所给定序列a[1:n]分为长度相等的两段a[1:n/2]和a[n/2+1:n],分别求出这两段的最大子段和,则a[1:n]的最大子段和有哪三种情形?(10分)答:2、由0——1背包问题的最优子结构性质,可以对m(i,j)建立怎样的递归式? (10分)3、0——1背包求最优值的步骤分为哪几步?(10分)参考答案:填空题:确定性分解成若干个子问题最优解的性质递归地定义最优值以自底向上的方式计算出最优值构造最优解{i|ai<bi} ai的非减序排序;将N2中作业依bi的非增序排序min{bπ(i),aπ(i+1)}≥min{bπ(i+1),aπ(i)}最小平均查找长度综合题:20 min{ai+T(N-{i},bi)}(1=<i<=n) thissum+=a[k] besti=i 0 m[i+1][j] t<m[i][j]法一:min(ai,bj)<=min(aj,bi)因为min(a1,b2)<=min(a2,b1)所以1→2 (先1后2)由min(a1,b3)<=min(a3,b1)得1→3 (先1后3)同理可得:最后为1→3→4→2法二:johnson算法思想N1={1,3,4} N2={2}N¹1={1,3,4} N¹2={2}所以 N¹1→N¹2得:1→3→4→2简答题:1 、(1)a[1:n]的最大子段和与a[1:n/2]的最大子段和相同。
(完整版)算法设计与分析期末考试卷及答案a
flag=false
_
_
end if
_
__
end for
A[i] A[1]
w =i
return w, A end SPLIT
二.计算题和简答题(每小题
1.用O、、 表示函数f与g之间阶的关系,并分别指出下列函数中阶最低和最高 的函数:
(1)f (n)=100g(n)=100n
(2)f(n)=6n+nlog ng(n)=3n
算法EX1
输入:正整数n,n=2k。输出:⋯
ex1(n)
end EX1过程ex1(n) if n=1 then pro1(n)
else
栏
名姓
级年
_
_系
_院学
pro2(n)
ex1(n/2) end if
return
end ex1
3.用Floyd算法求下图每一对顶点之间的最短路径长度, 计算矩阵D0,D1,D2和D3,其中Dk[i, j]表示从顶点i到顶点j的不经过编号大于
i=find ( (1) )
if i>0 then output i
else output“no solution”
end SEARCH
过程find (low, high)
//求A[low..high]中使得A[i]=i的一个下标并返回,若不存在,
//则返回0。
if (2) then return 0
生专
_
订
马的周游问题:给出一个nxn棋盘,已知一个中国象棋马在
_
_
棋盘上的某个起点位置(x0, y0),求一条访问每个棋盘格点恰好
_
_
一次,最后回到起点的周游路线。 (设马走日字。)
算法设计与分析(含编程实践)-随堂练习2023秋华工答案
算法设计与分析(含编程实践)-随堂练习2023秋华工答案题目1题目:编写一个函数,实现对一个整型数组的排序。
def sort_array(arr):"""对一个整型数组进行排序参数:arr -- 待排序的整型数组返回:排序后的整型数组"""return sorted(arr)题目2题目:编写一个函数,实现对一个字符串进行反转。
def reverse_string(s):"""对一个字符串进行反转参数:s -- 待反转的字符串返回:反转后的字符串"""return s[::-1]题目3题目:编写一个函数,实现计算一个字符串中每个字符出现的次数,并以字典的形式返回。
def count_characters(s):"""计算一个字符串中每个字符出现的次数,并以字典的形式返回参数:s -- 待计算的字符串返回:包含每个字符出现次数的字典"""counts = {}for char in s:if char in counts:counts[char] += 1else:counts[char] = 1return counts题目4题目:编写一个函数,判断一个数是否为素数。
def is_prime(n):"""判断一个数是否为素数参数:n -- 待判断的数返回:如果是素数,返回True;否则,返回False """if n <= 1:return Falsefor i in range(2, int(n ** 0.5) + 1):if n % i == 0:return Falsereturn True以上是算法设计与分析(含编程实践)-随堂练习2023秋华工的答案。
(完整版)算法设计与分析考试题及答案,推荐文档
____________________________________。 4.若序列 X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列
X 和 Y 的一个最长公共子序列_____________________________。 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至
和
之分。
5、 f(n)= 6×2n+n2,f(n)的渐进性态 f(n)= O(
)
6、 贪心算法总是做出在当前看来
的选择。也就是说贪心算法并不从整体最优考
虑,它所做出的选择只是在某种意义上的
。
7、 许多可以用贪心算法求解的问题一般具有 2 个重要的性质:
性质和
性质。
二、简答题(本题 25 分,每小题 5 分)
五、算法理解题(本题 5 分) 设有 n=2k 个运动员要进行循环赛,
现设计一个满足以下要求的比赛日程表:
①每个选手必须与其他 n-1 名选手比赛各一次; ②每个选手一天至多只能赛一次;
③循环赛要在最短时间内完成。
我去(人1)如也果 就n=2k有,循人环赛!最少为需要U进R行扼几天腕; 入站内信不存在向你偶同意调剖沙 (2)当 n=23=8 时,请画出循环赛日程表。
六、算法设计题(本题 15 分) 分别用贪心算法、动态规划法、回溯法设计 0-1 背包问题。要求:说明所使用的算法
策略;写出算法实现的主要步骤;分析算法的时间。 七、算法设计题(本题 10 分)
建议收藏下载本文,以便随时学习! 通过键盘输入一个高精度的正整数 n(n 的有效位数≤240),去掉其中任意 s 个数字后, 剩下的数字按原左右次序将组成一个新的正整数。编程对给定的 n 和 s,寻找一种方案, 使得剩下的数字组成的新数最小。 【样例输入】 178543 S=4 【样例输出】 13
算法分析与设计试题及答案
算法分析与设计试题及答案一、选择题1. 下列哪个是属于分治算法的例子?A. 冒泡排序B. 归并排序C. 顺序查找D. 选择排序答案:B2. 在排序算法中,时间复杂度最优的是:A. 冒泡排序B. 插入排序C. 归并排序D. 快速排序答案:C3. 哪个不是动态规划的特点?A. 具有重叠子问题B. 通过递归求解C. 需要保存子问题的解D. 具有最优子结构答案:B4. 在图的广度优先搜索算法中,使用的数据结构是:A. 栈B. 队列C. 数组D. 堆栈答案:B5. 在最小生成树算法中,下列哪个不属于贪心策略?A. Kruskal算法B. Prim算法C. Dijkstra算法D. Prim-Kruskal混合算法答案:C二、简答题1. 请简述分治算法的思想和应用场景。
答案:分治算法的思想是将原问题分解成若干个规模较小且类似的子问题,然后解决子问题,最后将子问题的解合并得到原问题的解。
其应用场景包括排序算法(如归并排序、快速排序)、搜索算法(如二分查找)等。
2. 什么是动态规划算法?请给出一个动态规划算法的示例。
答案:动态规划算法是一种通过将问题分解成子问题并解决子问题来解决复杂问题的方法。
它的特点是具有重叠子问题和最优子结构性质。
以斐波那契数列为例,可以使用动态规划算法求解每一项的值,而不需要重复计算。
3. 图的深度优先搜索和广度优先搜索有什么区别?答案:图的深度优先搜索(Depth First Search,DFS)是一种先访问子节点再访问兄弟节点的遍历算法,通常使用递归或者栈实现。
而广度优先搜索(Breadth First Search,BFS)则是以层次遍历的方式展开搜索,使用队列来实现。
DFS更适合用于搜索路径,BFS则适用于寻找最短路径等。
4. 请简述贪心算法的特点及其应用场景。
答案:贪心算法的特点是每一步都采取当前状态下最优的选择,以期望得到全局最优解。
然而,贪心算法并不一定能求解所有问题的最优解,但对于一些特定问题,贪心算法往往能得到近似最优解。
算法设计与分析 期末试卷 A卷 完整含答案
装订线华南农业大学期末考试试卷(A卷) 2012学年第1学期 考试科目:算法设计与分析考试类型:(闭卷)考试 考试时间:120 分钟学号姓名年级专业题号一(20) 二(25) 三(16) 四(24) 五(15) 总分得分评阅人说明:(1)请勿漏填学号姓名等信息。
本试卷仅一份,请将答案直接填于试卷上,莫将试卷当草稿,想好了再写,若空白的位置不够,标注清楚后可以写反面;(2)答题时,对算法的描述可以采用文字、公式、图、伪代码、实例说明等混合形式。
请注意表达应条理清晰,思想简洁,勿长篇累述不得要领。
得分一、填空题(1~3题每空1分,第4题每空2分,共20分,结果直接填于划线处)1、化简下面f(n)函数的渐进上界表达式。
(5分)nnnf32/)(21,则____)(_________))((1OnfO322)(nnf,则____)(_________))((2OnfO33log)(nnf ,则____)(_________))((3OnfO2log42)(nnf ,则____)(_________))((4OnfOnnf3log)(5,则____)(_________))((5OnfO参考解答:)3())((1nOnfO ;)2())((2nOnfO ;)(log))((3nOnfO ;)())((24nOnfO ;)())((5nOnfO 。
2、用大O符号和关于n的渐进函数来表征如下算法Loop1至Loop3的运行时间。
(3分)算法1:O( );算法2:O( );12算法3:O( )参考解答:算法1:)(2n O ;算法2:)(3n O ;算法3:)(4n O 。
3、假设算法A 的计算时间为n n T 2)( ,现在一慢一快的两台计算机上测试算法A ,为解决规模n 的问题慢机运行算法A 花费t 秒,而另一台快机速度是慢机的256倍,则在快机上算法A 同样运行t 秒能解决n1规模,则n1和n 的关系为:n1= ;若算法B 的计算时间为2)(n n T ,其余条件不变,则n1= 。
算法基础试题及答案
算法基础试题及答案一、单项选择题(每题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一、多项选择题(每空2分,共20分):1、以下关于算法设计问题的叙述中正确的是__________。
A、计算机与数值问题的求解——方程式求根、插值问题、数值积分、函数逼近等有关B、利用计算机无法解决非数值问题C、计算机在解决分类、语言翻译、图形识别、解决高等代数和组合分析等方面的数学问题、定理证明、公式推导乃至日常生活中各种过程的模拟等问题中,主要进行的是判断、比较,而不是算术运算D、算法设计与分析主要研究对象是非数值问题,当然也包含某些数值问题2、算法的特征包括_________。
A、有穷性B、确定性C、输入和输出D、能行性或可行性3、以下描述是有关算法设计的基本步骤:①问题的陈述②算法分析③模型的拟制④算法的实现⑤算法的详细设计⑥文档的编制,应与其它环节交织在一起其中正确的顺序是__________。
A、①②③④⑤⑥B、①③⑤②④⑥C、②④①③⑤⑥D、⑥①③⑤②④4、以下说法正确的是__________。
A、数学归纳法可以证明算法终止性B、良序原则是证明算法的正确性的有力工具C、x = 小于或等于x的最大整数(x的低限)D、x = 小于或等于x的最大整数(x的高限)5、汉诺塔(Hanoi)问题中令h(n)为从A移动n个金片到C 上所用的次数,则递归方程为__________,其初始条件为__________,将n个金片从A柱移到C柱上的移动次数是__________;设菲波那契(Fibonacci)数列中Fn为第n个月时兔子的对数,则有递归方程为__________,其中F1=F2=__________。
A、Fn=Fn-1+Fn-2B、h(n)= 2h(n-1)+1C、1D、h(1)= 1E、h(n)=2n-1F、06、在一个有向连通图中(如下图所示),找出点A到点B的一条最短路为____ ______。
A、最短路:1→3→5→8→10,耗费:20B、最短路:1→4→6→9→10,耗费:16。
(完整word版)算法设计与分析课程期末试卷
华南农业大学期末考试试卷(A卷)2007学年第一学期考试科目: 算法分析与设计考试类型: (开卷)考试时间: 120分钟学号姓名年级专业一、选择题(20分, 每题2分)1.void hanoi(int n, int a, int b, int c){if (n > 0){hanoi(n-1, a, c, b)。
move(a,b)。
hanoi(n-1, c, b, a)。
}}上述算法的时间复杂度为A.A. O(2n)B. O(nlog n)C. Θ(n!)D. Θ(nn)2.当一个确定性算法在最坏情况下的计算复杂性与其在平均情况下的计算复杂性有较大差别时, 可以使用B来消除或减少问题的好坏实例间的这种差别.(A)数值概率算法(B)舍伍德算法(C)拉斯维加斯算法(D)蒙特卡罗算法3.对于下列二分搜索算法, 正确的是D.(A)public static int binarySearch(int[] a, int x, int n){int left = 0, right = n-1。
while(left <= right){int middle = (left + right) / 2。
if(x == a[middle]) return middle。
if(x > a[middle]) left = middle。
else right = middle。
}//whilereturn –1。
}(B)public static int binarySearch(int[] a, int x, int n) {int left = 0, right = n-1。
while(left+1 != right){int middle = (left + right) / 2。
if(x >= a[middle]) left = middle。
else right = middle。
}//whileif(x == a[left]) return left。
南华大学 算法设计与分析 期末考题
南华大学算法设计与分析期末考题
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.经分解得到子问题往往是任意的。
算法设计与分析试卷(一)及答案.doc
算法设计与分析试卷(一)及答案算术分析试卷(卷一)课程名称算术分析编号问题编号1234总分评估师一、填空(每题3分,共30分)1.算法的优点和缺点可以用总和来衡量。
2.这种不断回头寻找目标的方法叫做。
3.直接或间接调用自己的算法称为。
4.q符号用算法复杂性的表示来表示。
5.分治法产生的子问题通常是它提供了使用的便利。
6.建立计算模型的目的是使。
7.以下步骤的顺序是。
①调试程序②分析问题③设计算法④编程。
8.最优子结构性质的含义是。
9.贪婪算法从初始阶段开始,每个阶段总是做出贪婪的选择。
10.拉斯维加斯算法一定找到了解决方案。
二、选择题(每题2分,共20分)1.霍夫曼编码可以用()算法实现。
分治策略b,动态规划方法c,贪婪方法d,回溯方法2、以下不是基本的计算模型()。
随机存取存储器、只读存储器、只读存储器3.在以下算法中,最佳解决方案通常是从上到下求解()。
一、分治法b、动态规划法c、贪心法d、回溯法考试科目: 类别:姓名:学生编号:-一、填空(每题3分,共30分)1.算法的优点和缺点可以用总和来衡量。
2.这种不断回头寻找目标的方法叫做。
3.直接或间接调用自己的算法称为。
4.q符号用算法复杂性的表示来表示。
5.分治法产生的子问题通常是它提供了使用的便利。
6.建立计算模型的目的是使。
7.以下步骤的顺序是。
①调试程序②分析问题③设计算法④编程。
8.最优子结构性质的含义是。
9.贪婪算法从初始阶段开始,每个阶段总是做出贪婪的选择。
10.拉斯维加斯算法一定找到了解决方案。
二、选择题(每题2分,共20分)1.霍夫曼编码可以用()算法实现。
分治策略b,动态规划方法c,贪婪方法d,回溯方法2、以下不是基本的计算模型()。
随机存取存储器、只读存储器、只读存储器3.在以下算法中,最佳解决方案通常是从上到下求解()。
一、分治法b、动态规划法c、贪心法d、回溯法考试科目:类别:姓名:学生编号:最佳解决方案是:参考答案我填补空白1.空间复杂性时间复杂性2.追溯方法3.递归算法4.渐进定边界还是紧致边界5、小模式递归技术的原始问题6.问题的计算复杂性分析有一个共同的客观标准。
(完整word版).1算法设计与分析课程期末试卷-A卷(自测)
华南农业大学期末考试试卷(A卷)2008学年第一学期考试科目:算法分析与设计考试类型:(闭卷)考试时间:120 分钟学号姓名年级专业一、选择题(20分,每题2分)1.下述表达不正确的是。
A.n2/2 + 2n的渐进表达式上界函数是O(2n)B.n2/2 + 2n的渐进表达式下界函数是Ω(2n)C.logn3的渐进表达式上界函数是O(logn)D.logn3的渐进表达式下界函数是Ω(n3)2.当输入规模为n时,算法增长率最大的是。
A.5n B.20log2n C.2n2D.3nlog3n3.T(n)表示当输入规模为n时的算法效率,以下算法效率最优的是。
A.T(n)= T(n – 1)+1,T(1)=1 B.T(n)= 2n2C.T(n)= T(n/2)+1,T(1)=1 D.T(n)= 3nlog2n4.在棋盘覆盖问题中,对于2k×2k的特殊棋盘(有一个特殊方块),所需的L型骨牌的个数是。
A.(4k– 1)/3 B.2k /3 C.4k D.2k5.在寻找n个元素中第k小元素问题中,若使用快速排序算法思想,运用分治算法对n个元素进行划分,应如何选择划分基准?下面答案解释最合理。
A.随机选择一个元素作为划分基准B.取子序列的第一个元素作为划分基准C.用中位数的中位数方法寻找划分基准D.以上皆可行。
但不同方法,算法复杂度上界可能不同6.有9个村庄,其坐标位置如下表所示:现在要盖一所邮局为这9个村庄服务,请问邮局应该盖在才能使到邮局到这9个村庄的总距离和最短。
A.(4.5,0)B.(4.5,4.5) C.(5,5)D.(5,0)7.n个人拎着水桶在一个水龙头前面排队打水,水桶有大有小,水桶必须打满水,水流恒定。
如下说法不正确?A.让水桶大的人先打水,可以使得每个人排队时间之和最小B.让水桶小的人先打水,可以使得每个人排队时间之和最小C.让水桶小的人先打水,在某个确定的时间t内,可以让尽可能多的人打上水D.若要在尽可能短的时间内,n个人都打完水,按照什么顺序其实都一样8.分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决子问题,最后将子问题的解组合起来形成原问题的解。
算法设计与分析试卷A及答案(2019级)
试题纸(A卷)课程名称:算法设计与分析适用专业年级: 2008级计算机、电本考生学号:考生姓名:………………………………………………………………………………………………………………………题号一二三四总分分数一、填空题(10空×2分,共20分)1、算法在运行时占有的机器资源的量称为算法复杂性,主要包括(时间)和(空间)。
2、当一个算法的运行时间为n2+n+1时,由于n2+n+1与n2的数量级相等,则称n2为这个算法的(时间复杂度)。
3、多项式A(n)=a m n m+…+ a2n2+ a1n+ a0的上界为()。
4、递归算法设计的关键在于找出(递归关系)和(最小问题的解)。
5、(无后向性)是问题能用贪婪算法或动态规划方法求解的前提。
6、拆半查找、合并排序、二叉树遍历等算法中均采用了(分而治之)策略。
7、回溯算法是尝试搜索算法中最为基本的一种算法,其采用了一种走不通就掉头的思想作为其控制结构。
8、用分支限界法解决布线问题时,对问题解空间搜索尝试结束的标志是()。
二、判断题(10题×2分,共20分)1.若c是正常数,则O(cf(n))=O(f(n))。
v2.在最好情况下、最坏情况下、平均情况下的时间复杂度中,可操作性最好的且最有实际价值的,是最坏情况下的时间复杂度。
x3.好的算法在很大程度上取决于问题中数据所采用的数据结构。
v4.迭代模型是通过小规模问题的解逐步求解大规模问题的解,正好与递归算法设计相反。
v5.用贪婪算法解决零钱兑换问题时,总能找到问题的最优解。
x6.适用动态规划算法解决问题应该具有最优化原理和子问题重叠。
x7.深度优先搜索算法可以搜索到问题所有可能的解方案。
x8.解决马的遍历问题采用回溯法,对解空间树的搜索采用广度优先搜索方式v9.分支限界法的求解目标是找出满足约束条件的一个解或是在满足约束条件的解中找出使用某一目标函数值达到极大或极小的解。
x三、简答题(3题×6分,共18分)1、叙述分治算法和动态规划算法的基本思想,并比较两种算法的异同。
大学算法期末考试题及答案
大学算法期末考试题及答案一、单项选择题(每题2分,共20分)1. 算法复杂度中的T(n)表示什么?A. 时间复杂度B. 空间复杂度C. 迭代次数D. 执行路径长度答案:A2. 在排序算法中,快速排序的平均时间复杂度是:A. O(n^2)B. O(nlogn)C. O(n)D. O(logn)答案:B3. 下列哪个算法不是动态规划算法?A. 斐波那契数列B. 背包问题C. 最长公共子序列D. 二分查找答案:D4. 哈希表的冲突解决策略中,开放寻址法和链地址法的主要区别是什么?A. 开放寻址法使用数组,链地址法使用链表B. 开放寻址法使用链表,链地址法使用数组C. 开放寻址法只能处理少量冲突,链地址法可以处理大量冲突D. 以上都不是答案:C5. 在图的遍历算法中,深度优先搜索(DFS)使用的是:A. 队列B. 栈C. 链表D. 数组答案:B6. 堆排序算法中,将一个堆结构调整为最大堆或最小堆的过程称为:A. 堆调整B. 堆构建C. 堆分解D. 堆合并答案:A7. 以下哪个排序算法是稳定的?A. 快速排序B. 归并排序C. 堆排序D. 选择排序答案:B8. 算法的五个基本特性包括有穷性、确定性、可行性、输入和输出,其中输入可以是:A. 数据B. 初始条件C. 指令D. 任意值答案:B9. 递归算法的效率往往比非递归算法低,这是因为:A. 递归需要额外的内存空间B. 递归需要更多的计算步骤C. 递归会导致栈溢出D. 递归需要重复计算相同的问题答案:D10. 在下列排序算法中,最不适合于排序大量数据的是:A. 插入排序B. 选择排序C. 归并排序D. 快速排序答案:A二、填空题(每题2分,共20分)11. 算法的时间复杂度为O(1),表示该算法的执行时间与输入数据的规模______。
答案:无关12. 在二叉树的遍历中,先序遍历的顺序是先访问根节点,然后按照______的顺序访问所有子树。
答案:先左后右13. 动态规划算法通常用于解决具有______性质的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
- 1 -
计算机学院2007-2008学年(下)学期期末考试试卷
《 算法设计与分析 》试卷(A )
专业 年级 06 班级 姓名 学号
题号 一
二 三 四 五 六 七 总分 得分
一、 简答题(每小题5分,共20分)
1、如何理解算法的时间复杂度?如何区别表示算法渐近复杂度三个记号Ο、Ω、Θ?
2、什么是最优算法?请基于事实“以比较为基础的排序算法的时间下界是Ω(n log n )”列举一个基于比较的最优排序算法。
3、图有宽度优先搜索和深度优先搜索算法。
如果图用邻接矩阵来表示,那么这两种算法的时间复杂度是什么?如果图用邻接表来表示呢?
4、快速排序算法是根据分治策略来设计的,其基本思想是什么?快速排序算法的最坏及平均情况的时间复杂度分别是多少?
二、计算题(共15分) 1、(7分)求解递推关系:
T(n )=6T(n −1) −9T(n −2), n =2;T(0)=T(1)=1。
2、(8分)证明:log1+log2+…+log n =Θ(n log n )。
三、算法分析题(10分)
考虑在序列A [1..n ]中找最大最小元素的问题。
一个分治算法描述如下:如果n ≤2就直接求解。
否则,将序列等分成两个子序列A [1..n /2]和A [n /2+1..n ],分别找出这两子序列的最大最小元素x 1,y 1和x 2,y 2;然后据此求出A [1..n ]的最大元素x =max {x 1,x 2}及最小元素y =min {y 1,y 2}。
请给出该算法计算时间T (n )满足的递归方程,并解方程来确定算法的时间复杂度。
假定n =2k (k 为正整数)。
四、 归纳技术应用题(共10分) 1、(4分)简述基数排序算法的基本思路和算法时间复杂度; 2、(6分)考虑使用基数排序算法对下列8个数据进行排序,请给出中间排序的结果。
2756 7352 3725 3762 5273 2375 5732
5627
五、 动态规划法应用题(共15分)
考虑用动态规划法求解矩阵连乘M 1M 2M 3M 4M 5的最优运算(即元素乘法次数最少)的次序,其中M 1:5×6,M 2:6×4,M 3:4×8,M 4:8×3,M 5:3×5。
1、(5分)设 C [i ,j ]表示矩阵连乘M i M i +1…M j 按照最优次序运算所需要的元素乘法次数。
请给出C [i ,j ]递推计算的公式。
2、(10分)根据递推公式填写下表,包括C [i ,j ]的值及对应的最优运算次序的加括号方式。
- 2 -
C[1,1]=0 M 1 C[1,2]=
C[1,3]=
C[1,4]=
C[1,5]=
C[2,2]= C[2,3]=
C[2,4]= C[2,5]= C[3,3]= C[3,4]= C[3,5]= C[4,4]= C[4,5]=
C[5,5]=
六、 贪心法应用题(共10分) 1、(4分)Prim 算法是求最小生成树的贪心算法,请简述Prim 算法的基本思想。
2、(6分)用Prim 算法求下图的最小生成树。
主要计算过程。
七、 算法设计题(共20分) 1、(4分)简述设计回溯算法的基本步骤。
2、(10分)在回溯法应用的综合性实验中,根据你做选做的题目,简要叙述你是如何用回溯法解决这个问题的(即给出求解该问题的回溯算法的几个要素)。
3、(6分)本课程中学习了分治法、贪心法、动态规划法、回溯法等设计算法的基本策略,在解决问题时应如何选用这些策略设计算法?结合实验谈谈体会。
- 3 -
计算机学院2007-2008学年(下)学期期末考试试卷
《 算法设计与分析 》试卷(B )
专业 年级 06 班级 姓名 学号
题号 一 二 三 四 五 六 七 总分 得分
一、简答题(每小题5分,共20分)
1、算法A 的计算时间T1(n )满足递归关系式:T 1 (n )=3T 1 (n -1)+1,, n >1;;T 1 (1)=1。
算法B 的计算时间T2(n )= 2n 3+1000n log 10n +100n 。
请使用记号Θ分别表示T 1 (n )和T 2 (n )。
2、设G=〈 V ,E 〉是无向图,n =|V|,m =|E|,且m =O (n 1.99)。
如果要求图G 的最小成生树,你愿意选择哪一个算法: Prim 算法还是Kruskal 算法?为什么? 3、在有向图的深度优先搜索中,边被分为哪几类?
4.设A [1..n ]是元素取值于区间[1..2n ]的整型数组,考虑对A 进行排序。
你认为归并排序算法 MERGERSORT 和基数排序算法RADIXSORT 哪一个可能更快?简述原因。
二、 计算题(共15分) 1、(7分)求解递推关系:
T(n )=3T(n −1)+4T(n −2),n =2;T(0)=1,T(1)=2。
2、(8分)证明:对于任意正整数k 有1k +2 k +…+n k =Θ(n k +1)。
三、算法分析题(共10分)
考虑求下列数列的通项a n :a 0=0,a 1
=1,a n =a n -1+a n -2(n >1)。
下面是使用C 语言表示的递归算法: int A (int n )
{ if (n = =0) return 0; if (n = =1) return 1;
else return A (n −1)+A (n −2); } 1、(5分)分析算法的时间复杂度。
2、(5分)你能够改进算法使得用Θ(n )时间即可求出FA (n )吗?简述你的改进办法。
四、(共10分)考虑在8个元素的集合A(1:8)=(10, 35, 5, 40, 20, 25, 30, 15)中找最大和最小元素。
1、(6分)说明用分治法求解此问题的基本思路,并画出求解过程; 2、(4分)分析求解过程中所作的元素比较次数,并将这一结果与直接求解法所需作的元素比较次数进行对比。
五、(共15分)请使用动态规划法求解下列0-1背包问题实例:n =4个物品,大小分别为W={2,3,4,6},价值分别为P={3,6,5,9},背包容量为M=10。
1、(5分)请给出递推计算公式。
2、(10分)根据递推计算公式用表格展示出计算过程,并给出最优结果。
六、(共10分)考虑用哈夫曼算法来找字符a,b,c,d,e,f的最优编码。
这些字符出现在文件中的频数之比为 20:10:6:4:44:16。
要求:
1、(4分)简述使用哈夫曼算法构造最优编码的基本步骤;
2、(6分)构造对应的哈夫曼树,并据此给出a,b,c,d,e,f的一种最优编码。
七、算法设计题(共20分)
1、(4分)请给出设计回溯算法的主要步骤。
2、(10分)考虑使用回溯法解4皇后问题,解空间取为由1,2,3,4的4!种排列所组成。
要求:用文字描述定义剪枝操作;画出用回溯算法找出一个解所产生的部分搜索树,并写出这个解。
3、(6分)本课程中我们学习了分治法、贪心法、动态规划法、回溯法等几种设计算法的基本策略,在解决实际问题时应如何来选用这些策略来进行算法设计?谈谈你的体会。
可以结合所做过的实验情况来谈。
- 4 -。