中南大学现代远程教育课程考试复习试题及参考答案Word格式.docx
《中南大学现代远程教育课程考试复习试题及参考答案Word格式.docx》由会员分享,可在线阅读,更多相关《中南大学现代远程教育课程考试复习试题及参考答案Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
约束条件是什么?
21.阐明n皇后问题解(x1,x2,….,xn)含义。
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)
if
then对两元素进行比较;
return;
else
{
maxmin(i,m,max1,min1);
//其中max1和min1为解子问题1解
}
2.Hanoi算法
Hanoi(n,a,b,c)
Ifn=1then
Else
{
;
Hanoi(n-1,b,a,c);
3.二分检索
BINSRCH(A,n,x,j)
low←1;
high←n;
whilelow<
highdo
{________________mid←(low+high)/2;
case
:
x=A[mid]:
j←mid;
x<
A[mid]:
_________________high←mid-1;
x>
_________________low←mid+1;
endcase
j←0;
end
4.迅速排序
Quicksort(p,q)
ifp>
qthen_____________
{callpartition(p,j);
call_______________________
end
5.贪心办法抽象化控制
procedureGREEDY(A,n)
//A(1:
n)包括n个输入//
solutions←;
fori←1todo
{x←SELECT(A)
ifFEASIBLE(solution,x)
thensolutions←;
endif
}
return(solution)
endGREEDY
6.背包问题贪心算法
procedureGREEDY-KNAPSACK(P,W,M,X,n)
X←0;
cu←M;
fori←1tondo
{ifthenexitendif
X(i)←_;
cu←;
ifi≤nthenX(i)←;
endGREEDY-KNAPSACK
7.分治合并排序算法
procedureMERGESORT(low,high)
iflow<
highthen
mid←_______________
____________________
MERGE(low,mid,high)
endMERGESORT
8.多段图动态规划算法
procedureFGRAPH(E,k,n,P)
1realCOST(n),integerD(n一1),P(k),r,j,k,n
2;
3forto1by-1do
4设r是一种这样结点,(j,r)∈E且使c(j,r)+COST(r)取最小值
5COST(j)←;
6;
7repeat
8P
(1)←1;
P(k)←n;
9fordo
10P(j)←D(P(j-1))
11repeat
12endFGRAPH
9.n后问题递归算法
procedureRNQUEENS(K)
globalx(1:
m),n;
forx(k)←1to_____do
ifplace(k)=truethen
ifk=nthen________
else
_____________
endif
repeat
endENQUEENS
五.设计算法
1.写递归形式二分检索算法
2.设计三分检索算法
3.有n个大小相似而重量不同集装箱,重量分别为(w1,w2,……,wn),已知货船额定载重量为M,Σwi>
M,i=1,2,3,…,n。
最优解是货船可以装载最多集装箱。
设计贪心算法。
4.有n个程序和长度为L磁带,程序i长度为ai,已知
,求最优解(xi,x2,...,xi,…,xn),1,xi=1,表达程序i存入磁带,xi=0,表达程序i不存入磁带,满足
,且存储程序数目最多。
参照答案
一、简答题
1.算法复杂性是算法运营所需要计算机资源耗费量,需要时间资源耗费量称作时间复杂性。
2.有5个基本特性是:
拟定性、能行性、输入给定、产生输出、有穷性。
3.算法复杂性用算法基本运算环节计量,运算环节与算法要解问题规模、算法输入关于。
4.比较树模型
5.分治基本思想是将一种规模为n问题分解为k个规模较小子问题,这些子问题互相独立且与原问题相似。
找出各某些解,然后把各某些解组合成整个问题解。
6.分治算法时间是这样拟定:
解决子问题所需工作总量由子问题个数、解决每个子问题工作量、合并所有子问题所需工作量所决定。
折半查找最坏状况下,也只需要在原问题一半大小子问题中查找,并且不需要合并子问题。
7.一方面对于数组a[p:
q]进行划分,以元素v为基准元素将a划分为三段a[p:
j-1],a[j]和a[j+1:
q],使得a[p:
j-1]中任何一种元素都不大于v,a[j+1:
q]中任何一种元素不不大于等于v,下标j在划分中拟定。
如果k=j,则返回v;
如果k<
j,则在a[p:
j-1]中选取;
如果k>
j,则在a[j+1:
q]中选取;
8.select算法最坏状况下时间复杂性阶为O(n2),其因素是a[p:
j-1]和a[j+1:
q]大小不是均衡。
Select2算法基本思路就是改随后抽取v为通过经解决产生,保证在最坏状况下a[p:
q]元素个数不会不大于原规模1/4。
9.迅速排序是基于分治方略一种排序算法。
基本思路:
a)分解(Divide)以元素v为基准元素将a划分为三段a[p:
b)递归求解,通过递归调用迅速排序算法分别对a[p:
j-1]和a[j+1:
q]进行排序。
不必进行任何合并操作。
10.迅速排序算法最坏状况下时间复杂性阶为O(n2),其因素是a[p:
迅速排序算法平均时间复杂性阶为O(nlogn)。
11.采用随机抽取。
对于数组a[p:
q],用v=a[p]作为分割元素。
12.使v=a[p],q=q+1
while(p<
q)do
{dop++;
while(a[p]<
v);
doq++;
while(a[q]>
if(p<
q)互换a[p]和a[q];
13.if问题不可分then求解
else{m=(p+q)/2;
对a[p,m]排序;
对a[m+1,q]排序;
将a[p,m]和a[m+1,q]合并;
}
14.分治合并排序二分归并过程在最坏状况下需比较n-1次,耗费可用cn表达。
15.最佳状况下需比较n/2次。
16.Maxmin(p,q,max,min)
if问题不可分:
n=2
then对两元素进行比较产生max,min;
{m=(p+q)/2;
Maxmin(p,m,max1,min1);
maxmin(m+1,q,max2,min2);
max=maxnum(max1,max2);
min=minnum(min1,min2);
17.贪心算法基本思路:
从问题某一种初始解出发逐渐逼近给定目的,以尽量快地求得更好解。
当达到某算法中某一步不能再继续迈进时,算法停止。
18.具备最优子构造。
19.目的函数:
∑pi最大,最优量度是选取有最大利润/重量物品。
20.∑pi最大,i属于可竣工子集。
21.xi表达第i行上皇后所在列。
22.place函数功能是判断第k行皇后位置和前k-1个皇后与否相容。
23.最优化原理:
无论过程初始状态是什么,别的决策都必要相对于初始决策所产生状态是最优。
通俗地讲,每一步最优都是上一步最优加上本段最优。
即当前最优只与上一步关于。
24.向前决策到第i段时,第i段节点j最优可以用第i-1段最优值加上本段长度:
cost(i,j)=min{cost(i-1,l)+c(j,l)}l是i-1段节点j后继节点。
二、动态规划递归式
1.fi(X)=max{fi-1(X-wi)+pi,fi-1(X)},(0<
=X<
=M)
fi(X)是背包容积为X时前i个物品最优值。
fi-1(X-wi)+pi是前i-1个物品最优值加上第i个物品放入获得利润,fi(X)等于第i个物品放入或不放入两种状况较大值。
2.g(s,i)=min{c(i,j)+g(s-{j},j)|j∈s,i∉s}
s是不包括起始点1任意顶点子集,g(s,i)是从顶点i出发经s中顶点各一次后到达顶点1最优值。
g(s,i)等于i到j代价c(i,j)加上从顶点j出发经s-{j}中顶点各一次后到达顶点1最优值。
3.g(s,t)=min{ai+g(s-{i},bi+max{t-ai,0})|i∈s}
s任意作业子集,g(s,t)是解决机2需要t时间才干开工条件下对s进行调度最优值。
从顶点i出发经s中顶点各一次后到达顶点1最优值。
三、算法分析
1.分析汉诺塔算法时间复杂性
汉诺塔算法如下:
①Ifn=1thenmove(a,c);
Els