算法设计期中试卷

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D. 预排序与递归调用
8.能采用贪心算法求最优解的问题,一般具有的重要性质为()。
A. 最优子结构性质与贪心选择性质
B.重叠子问题性质与贪心选择性质
C.最优子结构性质与重叠子问题性质
D. 预排序与递归调用
9.备忘录方法是那种算法的变形。( )。
A.分治法B.动态规划法C.贪心法D.回溯法
10.实现大整数乘法利用的算法是( )。
3.渐进算法分析是指()。
A.算法在最好情况、最坏情况和平均情况下的代价
B.当规模逐步往极限方向增大时,对算法资源开销“增长率”上的简化分析
C.数据结构所占用的空间
D.在最小输入规模下算法的资源代价
4.当上下限表达式相等时,我们使用下列()来描述算法代价?
A.大O表示法B.大Ω表示法
C.θ表示法D.小o表示法
4
2
15
南京信息工程大学滨江学院算法分析试卷答题纸
班级学号姓名成绩
一、选择题:(每题2分,共30分)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
二、填空题:(每空1分,共10分)
1
2
3
4
5
6
7
8
9
10
三、简答题:(每题10分,共30分)
2013-2014学年第1学期算法分析期中参考答案
一、选择题:(每题2分,共30分)
13
4
3
2
1
8
7
6
5
13
14
15
16
9
10
11
12
5
6
7
8
1
2
3
4
14
13
16
15
10
9
12
11
6
5
8
7
2
1
4
3
15
16
13
14
11
12
9
10
7
8
5
6
3
4
1
2
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
2.答:(1)共有10个子问题。n+C(n,2)个
A1,A2,A3,A4 4个
A1A2, A2A3, A3A4
5.二分搜索算法是利用( )实现的算法。
A.分治策略B.动态规划法C.贪心法D.回溯法
6.下列不是动态规划算法基本步骤的是( )。
A.找出最优解的性质B.构造最优解
C.算出最优解D.定义最优解
7.动态规划算法的基本要素为()。
A. 最优子结构性质与贪心选择性质
B.重叠子问题性质与贪心选择性质
C.最优子结构性质与重叠子问题性质
C.使用动态规划算法可求解任意0-1背包问题
D.对于同一背包与相同的物品,做背包问题取得的总价值一定大于等于做 0-1背包问题
二、填空题:(每空1分,共10分)
1.一个算法复杂性的高低体现在计算机运行该算法所需的时间和存储器资源上,因此算法的复杂性有【1】复杂性和【2】复杂性之分。
2.一个直接或间接调用自身的算法称为【3】算法。
南京信息工程大学滨江学院
2013 ─ 2014 学年第 1 学期
算法设计与分析 课程试卷
试卷类型期中考试类型开卷
注意:1、本课程为必修,学时为51,学分为3
2、本试卷共5页;考试时间120分钟; 出卷时间:2013年11月
3、姓名、学号等必须写在指定地方;考试时间:2013年11月11日
4、本考卷适用专业年级:计科11,软工11任课教师:宣文霞
2.答:顺序查找的时间是O(n),折半查找O(log n)降低了一个数量级。采用分治策略,每一次比较可以排除一半的数据。共需要比较4次才能找到82.
3.答:归并排序的分治是将数组从中间分开,分别对前后来那个部分进行排序,将排序后的两个数组合并成整个数组的排序。这样分治为递归过程,直到一个元素时返回。快速排序的分治是选取分割元素,以分割元素为界,将数组分成两部分,一部分小于分割元素,一部分大于分割元素,分别对两部分排序。
i
0
1
2
3
4
5
0
0
0
0
0
0
0
1
0
10
15
25
31
37
2
0
10
15
25
31
36
3
0
0
15
21
21
36
4
0
0
15
15
15
15
由上表可知,背包最大价值为m[1][5]=37,最优解为(1,1,0,1)
3.简述归并排序算法和快速排序算法的分治方法。并对下列实例数据A=(38,27,55,50,13,49,65)排序,写出采用快速排序算法,数组A第一次被分割的过程。
四、算法分析题:(每题10分,共30分)
1.有16个选手参加循环赛,循环赛一共进行15天,每个选手必须与其他的15个选手各赛一场,每个选手一天只比赛一次;设计一个满足上述要求的比赛日程表,并简述采用的算法基本思路。
A.分治策略B.动态规划法C.贪心法D.回溯法
11.使用分治法求解不需要满足的条件是()。
A.子问题必须是一样的
B.子问题不能够重复
C.子问题的解可以合并
D.原问题和子问题使用相同的方法解
12.贪心算法与动态规划算法的主要区别是( )。
A.最优子结构B.贪心选择性质C.构造最优解D.定义最优解
13.实现最长公共子序列利用的算法是( )。
天数12 3 4 5 67 8 9 10 11 12 13 14 15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
1
4
3
6
5
8
7
10
9
12
11
14
13
16
15
3
4
1
2
7
8
5
6
11
12
9
10
15
16
13
14
4
3
2
1
8
7
6
5
12
11
10
9
16
15
14
13
5
6
7
8
1
2
3
4
13
14
15
16
9
10
11
12
(2)递归地定义最优值。
(3)以自底向上的方式计算出最优值。
(4)根据计算最优值时得到的信息,构造最优解。
分治法与动态规划法的相同点是:将待求解的问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。(3分)
两者的不同点是:适合于用动态规划法求解的问题,经分解得到的子问题往往不是互相独立的。而用分治法求解的问题,经分解得到的子问题往往是互相独立的。(3分)
8.最优二叉搜索树即是【9】二叉搜索树。
9.任何可用计算机求解的问题所需的时间都与其【10】有关。
三、简答题:(每小题10分,共30分)
1.简述归动态规划算法的基本步骤,以及动态规划算法与分治法的异同。
2.与顺序查找算法相比,二分查找算法的时间复杂性有多大程度的降低?它是如何提高算法的效率的?有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当使用二分查找值为82的结点时,经过多少次比较后查找成功?
A.分治策略B.动态规划法C.贪心法D.回溯法
14.使用二分搜索算法在1000个有序元素表中搜索一个特定元素,在最坏情况下,搜索总共需要比较的次数是()。
A.10 B.11 C.500 D.1000
15.关于0-1背包问题以下描述正确的是()。
A.可以使用贪心算法找到最优解
B.能找到多项式时间的有效算法
2.对于矩阵连乘所需最少数乘次数问题,其递归关系式为:
其中m[i,j]为计算矩阵连乘Ai…Aj所需的最少数乘次数,pi-1为矩阵Ai的行,pi为矩阵的列。现有四个矩阵,其中各矩阵位数分别为:
A1
A2
A3
A4
5010
1040
4030
305
p0p1
p1p2
P2p3
p3p4
(1)在这个四矩阵连乘积问题中,请问不同子问题的个数总共有多少个?并请把所有的子问题列出来。
(2)请根据以上的递归关系,计算出矩阵连乘积A1A2A3A4所需要的最少数乘次数。要求写出求解过程,并将结果填入m[4][4]。
3.请用动态规划解下列0-1背包问题,写出递归式及求解过程。共有4个物品,背包重量C=5,下表中列出每个物品的重量和价值。
物品
重量(公斤)
价值(美元)
1
2
12
2
1
10
3
3
21
A1A2A3,A2A3A4
A1A2A3A4A5
(2)最少数乘次数即m[1,4]=10500
1 2 3 4
0
20000
27000
10500
0
12000
8000
0
6000
0
3.答:由0-1背包问题的最优子结构性质,可以建立计算m(i,j)的递归式如下。
根据动态规划解0-1背包的递归式,得到下面的动态规划表:
1
C
2
C
3
B
4
C
5
A
6
A
7
C
8
A
9
B
10
A
11
A
12
B
13
B
14
A
15
D
二、填空题:(每空1分,共10分)
1
时间
2
空间
3
递归
4
相等
5
分ຫໍສະໝຸດ Baidu法
6
划分的对称性
7
nlogn
8

9
最小平均路长(或最小搜索代价)
10
规模
三、简答题:(每题10分,共30分)
1.答:设计动态规划算法的主要步骤为:(4分)
(1)找出最优解的性质,并刻划其结构特征。
3.出自于“平衡子问题”的思想,通常分治法在分割原问题,形成若干子问题时,这些子问题的规模都大致【4】。
4.大整数乘积算法是用【5】来设计的。
5.快速排序算法的性能取决于【6】。
6.已知一个分治算法耗费的计算时间T(n),T(n)满足如下递归方程:
解此递归方程可得T(n)=O(【7】)。
7.递归通常用【8】来实现。
数组A第一次被分割的过程如下:
38 27 55 50 13 49 65
13 27 55 50 38 49 65
137 38 50 55 49 65
四、算法分析题:(每题10分,共30分)
1.答:可采用分治策略,将所有的选手分为两半,n个选手的比赛日程表就可以通过为n/2个选手设计的比赛日程表来决定。递归地用一分为二的策略对选手进行分割,直到只剩下2个选手时,比赛日程表的制定就变得很简单。这时只要让这2个选手进行比赛就可以了。设计的比赛日程表如下所示:
题号










十一
十二
总分
得分
阅卷人
(以上内容为教师填写)
专业年级班级
学号姓名
一、
选择题:(每题2分,共30分)
1.衡量一个算法好坏的标准是()。
A.运行速度快B.占用空间少C.时间复杂度低D.代码短
2.当输入规模为n时,算法增长率最快的是()。
A.12n B. 100log2n C.2n2D.3nlog3n
6
5
8
7
2
1
4
3
14
13
16
15
10
9
12
11
7
8
5
6
3
4
1
2
15
16
13
14
11
12
9
10
8
7
6
5
4
3
2
1
16
15
14
13
12
11
10
9
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
10
9
12
11
14
13
16
15
2
1
4
3
6
5
8
7
11
12
9
10
15
16
13
14
3
4
1
2
7
8
5
6
12
11
10
9
16
15
14
相关文档
最新文档