第一范文网 - 专业文章范例文档资料分享平台

算法设计与分析复习题目及答案

来源:用户分享 时间:2025/7/6 0:08:42 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

WORD格式

3.若n=4,在机器 M1和 M2上加工作业 i 所需的时间分别为 ai和bi,且 (a1,a2,a3,a4)=(4,5,12,10) ,(b1,b2,b3,b4)=(8,2,15,9) 求4个作业的最优调度方

案,并计算最优值。

步骤为:N1={1,3},N2={2,4};

N1’={1,3},N2’={4,2}; 最优值为:38

4. 使用回溯法解0/1背包问题:n=3,C=9,V={6,10,3},W={3,4,4},其解空间有长度为3的0-1向量组成,要求用一棵完全二叉树表示其解空间(从根出发,左 1 右0),并画出其解空间树,计算其最优值及最优解。解空间为{(0,0,0),(0,1,0),(0,0,1),(1,0,0),(0,1,1),(1,0,1), (1,1,0),(1,1,1)} 。 解空间树为:

A

1

0

B

C

1

0 1 0 D

E

F

G 1 1 1 0

0 1 0 0 H

I

J

K

L M

N

O

该问题的最优值为:16 最优解为:(1,1,0)

5.设S={X,X,···,X}是严格递增的有序集,利用二叉树的结点来存储

1 2 n 的元素,在表示S的二叉搜索树中搜索一个元素X,返回的结果有两种情形,(1) 在二叉搜索树的内结点中找到

X=Xi,其概率为bi。(2)在二叉搜索树的叶结点中 确定X∈(X,X ),其概率为a。在表示S的二叉搜索树T中,设存储元素X

i i+1 i 的结点深度为Ci;叶结点(Xi ,Xi+1)的结点深度为di,则二叉搜索树T的平均路 长p为多少?假设二叉搜索树

T[i][j]= {Xi,Xi+1,···,Xj}最优值为m[i][j]

W[i][j]=ai-1 +bi+···+bj +aj,则m[i][j](1<=i<=j<=n)

递归关系表达式为什么?n

n 二叉树T的平均路长P=

bi*(1Ci)+ aj*dj

i1

j0

m[i][j]=W[i][j]+min{m[i][k]+m[k+1][j]}(1<=i<=j<=n,m[i][i-1]=0)

m[i][j]=0 (i>j) 6. 描述0-1背包问题。

已知一个背包的容量为 C,有n件物品,物品i的重量为Wi,价值为Vi,求应如

专业资料整理

S中 i ,

WORD格式

} 2.

voidbinarysearchtree(inta[],intb[],intn,int**m,int**s,int**w) {

inti,j,k,t,l; for(i=1;i<=n+1;i++) {w[i][i-1]=a[i-1]; m[i][i-1]=0;}

for(l=0;l<=n-1;l++)//----l 是下标j-i的差 for(i=1;i<=n-l;i++) {j=i+l;

w[i][j]=w[i][j-1]+a[j]+b[j];

m[i][j]=m[i][i-1]+m[i+1][j]+w[i][j]; s[i][j]=i;

}

l=i;//-----记下当前第一个 bi的下标 for(i=l;i<=n-1;i++) { k=i;

for(j=k+1;j<=n;j++) if(s[k].b

swap(s[i].index,s[k].index);//-----只移动index和tag swap(s[i].tag,s[k].tag);

}

何选择装入背包中的物品,使得装入背包中物品的总价值最大。

三、简答题(30分)

1.流水作业调度中,已知有

n个作业,机器M1和M2 上加工作业i所需的时间分

别为ai和bi,请写出流水作业调度问题的 (函数名可写为 sort(s,n) )

johnson 法则中对ai和bi的排序算法。

2.最优二叉搜索树问题的动态规划算法(设函数名 binarysearchtree)) 1.

voidsort(flowjopes[],intn) {

inti,k,j,l;

for(i=1;i<=n-1;i++)//-----选择排序 { k=i;

while(k<=n&&s[k].tag!=0)

k++;

if(k>n) break;//-----没有ai,跳出 else

{for(j=k+1;j<=n;j++)

if(s[j].tag==0)

if(s[k].a>s[j].a) k=j; swap(s[i].index,s[k].index); swap(s[i].tag,s[k].tag);}

专业资料整理

WORD格式

for(k=i+1;k<=j;k++)

{t=m[i][k-1]+m[k+1][j]+w[i][j];

if(t

;s[i][j

} 一、

填空题(本题15分,每小题1分)

规则

,它们规定了解决某一特定类型问题的

一系

}

}

}

]=k;

1、算法就是一组有穷的

列运算

2、在进行问题的计算复杂性分析之前,首先必须建立求解问题所用的计算模

型。3个基本计算模型是 RASP、图灵机 3、算法的复杂性是

。 算法效率

的度量,是评价算法优劣的重要依据。

资源

随机存取机

RAM

、随机存取存储程序机

4、计算机的资源最重要的是 时间和空间 n 2

5、f(n)=62× ,f(n)的渐进性态f(n)=O(2^n) +n

6、贪心算法总是做出在当前看来 最好

的选择。也就是说贪心算法并不

从整体最优考虑,它所做出的选择只是在某种意义上的局部最优结构

25分,每小题5分)

二、简答题(本题 1、 2、 3、 4、

5、

简单描述分治法的基本思想。

简述动态规划方法所运用的最优化原理。 何谓最优子结构性质?

5分)

简单描述回溯法基本思想。 何谓P、NP、NPC问题

20分,每小题

三、算法填空(本题 1、n后问题回溯算法

(1)用二维数组A[N][N] 非0值,否则值为0。

存储皇后位置 ,若第 i 行第 j 列放有皇后 ,则 A[i][

j]

(2) 分别用一维数组M[N]、L[2*N-1]、R[2*N-1]表示竖列、左斜线、右斜线是 否放有棋子,有则值为 for(j=0;j

1,否则值为0。

*/

放皇后*/

试探下一行 */

{A[i][j]=i+1; 2 ;

if(i==N-1) else 3

4 ; 5

安全检查 /*

输出结果;

; ;/*

/* 去皇后*/

;;

专业资料整理

WORD格式

}

专业资料整理

搜索更多关于: 算法设计与分析复习题目及答案 的文档
算法设计与分析复习题目及答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3zf935nawj9pugm7qnnb9acj39qpyw00efi_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top