算法设计与分析

背包问题的贪心算法所需的计算时间为()A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)

题目

背包问题的贪心算法所需的计算时间为()

  • A、O(n2n
  • B、O(nlogn)
  • C、O(2n
  • D、O(n)
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

背包问题的贪心算法所需的计算时间为O(2n)。()

此题为判断题(对,错)。


正确答案:×

第2题:

背包问题贪心算法的时间复杂性。


参考答案:背包问题贪心算法的时间复杂性
  如果不考虑排序的时间,背包问题贪心算法的时间就是
  循环语句:
  for i=1 to n do执行的时间,循环体语句可以用常数c表示,
  算法的时间复杂性为:T(n)=cn。

第3题:

背包问题的贪心算法所需的计算时间为()

A.O(n2n)

B.O(nlogn)

C.O(2n)

D.O(n)


参考答案:B

第4题:

● (65) 不能保证求得0-1 背包问题的最优解。

(65)

A. 分支限界法

B. 贪心算法

C. 回溯法

D. 动态规划策略


正确答案:B

第5题:

*部分背包问题可有贪心法求解:计算Pi/Wi

数据结构:

w[i]:第i个背包的重量;

p[i]:第i个背包的价值;

1.0-1背包: 每个背包只能使用一次或有限次(可转化为一次):

A.求最多可放入的重量。


正确答案:

 

NOIP2001 装箱问题
有一个箱子容量为v(正整数,o≤v≤20000),同时有n个物品(o≤n≤30),每个物品有一个体积 (正整数)。要求从 n 个物品中,任取若千个装入箱内,使箱子的剩余空间为最小。
l 搜索方法
procedure search(k,v:integer); {搜索第k个物品,剩余空间为v}
var i,j:integer;
begin
if v<best then best:=v;
if v-(s[n]-s[k-1])>=best then exit; {s[n]为前n个物品的重量和}
if k<=n then begin
if v>w[k] then search(k+1,v-w[k]);
search(k+1,v);
end;
end;

l DP
F[I,j]为前i个物品中选择若干个放入使其体积正好为j的标志,为布尔型。
实现:将最优化问题转化为判定性问题
f [I, j] = f [ i-1, j-w[i] ] (w[I]<=j<=v) 边界:f[0,0]:=true.
For I:=1 to n do
For j:=w[I] to v do F[I,j]:=f[I-1,j-w[I]];
优化:当前状态只与前一阶段状态有关,可降至一维。
F[0]:=true;
For I:=1 to n do begin
F1:=f;
For j:=w[I] to v do
If f[j-w[I]] then f1[j]:=true;
F:=f1;
End;

第6题:

不能保证求得0-1背包问题的最优解。

A.分支限界法

B.贪心算法

C.回溯法

D.动态规划策略


正确答案:B
解析:题中的分支界限法、回溯法和动态规划策略等实质都需要遍历所有可能的情况(分支界限法会避免没必要的计算分支,在一定程度上优化了算法)。而贪心算法只能保证在当前这一步计算是最优的选择,而不能保证全局的最优解。

第7题:

该贪心算法的时间复杂度为(5)。


正确答案:(5)O(N)或O(n)
(5)O(N)或O(n) 解析:虽然该贪心算法中包含两个循环,但实际上只是遍历所有无线网卡一次,因此算法复杂度是O(N)。

第8题:

采用贪心算法的最优装载问题的主要计算量在于将集装箱依其重量从小到大排序,故算法的时间复杂度为O(n2n)。()

此题为判断题(对,错)。


正确答案:×

第9题:

考虑一个背包问题,共有n=5个物品,背包容量为W=10,物品的重量和价值分别为:w={2,2,6,5,4},v={6,3,5,4,6},求背包问题的最大装包价值。若此为0-1背包问题,分析该问题具有最优子结构,定义递归式为

其中c(i,j)表示i个物品、容量为j的0-1背包问题的最大装包价值,最终要求解c(n,W)。 采用自底向上的动态规划方法求解,得到最大装包价值为(62),算法的时间复杂度为(63)。 若此为部分背包问题,首先采用归并排序算法,根据物品的单位重量价值从大到小排序,然后依次将物品放入背包直至所有物品放入背包中或者背包再无容量,则得到的最大装包价值为(64),算法的时间复杂度为(65)。

A.11

B.14

C.15

D.16.67


正确答案:C

第10题:

采用贪心算法保证能求得最优解的问题是( )

A.0-1背包
B.矩阵连乘
C.最长公共子序列
D.邻分(分数)背包

答案:D
解析:
动态规划算法适合解决0-1背包问题,贪心法适合解决部分背包(邻分(分数)背包)问题。