- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
南阳理工学院2010-2011学年第一学期试卷答案
课程: 算法设计与分析 (B)
评卷人(签名): 复核人(签名):
题号 一 二 三 四 五 总分 得分 一、选择题(每小题1分,共10分)
选出不是算法所必须具有的特征( C )。
A.有限性 B.确定性 C.高效性 D. 能行性
下列( A )不是描述算法的工具。
A.数据流图 B.伪代码 C.自然语言 D.程序语言
下列程序段的算法时间复杂度为( D )。
for(int i=0;i=n;i++)
for(int j=0;j=m;j++)
S;//S是基本操作,耗时常数时间
A. B. C. D.
5个矩阵连乘可能的计算次序有( C )种。
A.4种 B.5种 C.14种 D.15种
折半查找算法在最坏情况下的复杂度为( D )。
A. O(n) B. O(n2) C. O(nlogn) D. O(logn)
Fibonacci数列的第1项为0,第2项为1,那么它的第9项为( C )。
A. 3 B. 13 C. 21 D.34
如果X序列包含20个字符,Y序列包含30个字符,则使用动态规划来解最长公共子序列问题,记录各子问题最优值的数组大小为( A )
A.651 B.600 C.620 D.630
背包问题:n=6,C=10,V(1:6)=(1559,21,30,60,5),W(1:6)=(15,2,3,6,1)A.101 B.110 C.115 D.120
用贪心策略设计算法的关键是( B )。
A.将问题分解为多个子问题来分别处理 B.选好贪心策略
C.获取各阶段间的递推关系式 D.满足最优性原理
下列排序算法不是基于交换的是( C ).
A冒泡排序 B. 快速排序 C 合并排序 D. 堆排序
二、填空题(每空2分,共30分)
1.请将快速排序的分治算法补充完整。
数组a存放待排序元素,left:为待排序元素最小下标,right:为待排元素最大下标。
int Partition(int a[],int left,int right)
{
int x=a[left];
int i=left+1;
int j=right;
while(true)
{
while(a[i] x ihigh)
i++;
while(a[j] x)
j-- ;
if(i=j) break ;
swap(a[i],a[j]);
}
a[left]=a[j];
a[j]=x;
return j;
}
void QuickSort(int a[],int left,int right)
{
if(leftright)
{
int p=Partition(a,left,right);
QuickSort (a,left,p-1);
QuickSort (a,p+1,right);
}
}
2.动态规划四大解题步骤包括最优子结构性质分析、 建立最优值的递归关系式 、自底向上求最优值并记录相关信息、根据记录下来的信息构造最优解。
3.矩阵连乘问题求最优直算法的复杂度是 O(n3) 。
4.哈夫曼编码算法中采用的贪心策略是 从树的集合中取出两棵出现频率最低的树,让它们作为左右子树构造一棵新树,插入到树的集合中。
5.旅行商问题的解空间树是一棵 排列 树,n皇后问题的满足不同行要求的解空间树是一棵满n叉树。图的m着色问题的解空间树是一棵满m叉树。
6.随机化算法中, 蒙特卡罗 算法用于求准确解, 数值随机化 算法用于求近似解;用于求问题的正确解 拉斯维加斯算法 算法,但是,算法的每一次运行不一定得到解。当确定性算法中,最坏情况和最好情况下时间的相差很大时,用 舍伍德 算法削弱这种差异。
三、问答题(每小题5分,共20分)
1.分治算法有何特征。
答:分治算法具有以下特征:(1)问题规模足够小时容易解决;(2)将规模大的问题分成规模较小的子问题;(3)子问题相互独立;(4)子问题的解决方法与原问题相同;(5)递归解决子问题;(6)子问题的解能够合并成原问题的解。
2.简述单源最短路径问题的Dijkstra算法的思想。
答:初始时令S={源点},Dist数组记录最短特殊路径长度,重复做如下操作:
选择一条特殊路径长度最短的,将其连接的V-S中的点加入到S中 。同时考察有没有更优的特殊路径出现。若有,则修正。
文档评论(0)