算法选择题

第一章

1、2n2+n+2100,以下()是不正确描述(B)
A.O(logn)
B.2100
C.0 (n3)
D.0 (n2)

2、当上下限表达式相等时,我们使用下列哪种表示法来描述算法代价?(D)
A.大2表示法
B.大O表示法
C.小o表示法
D.日表示法

3、解决一个问题通常有多种方法。若说一个算法“有效”是指(B)。
A.这个算法能在人的反应时间内将问题解决
B.这个算法能在一定的时间和空间资源限制内将问题解决;这个算法比其他已知算法都更快地将问题解决。
C.这个算法比其他已知算法都更快地将问题解决
D.这个算法能在一定的时间和空间资源限制内将问题解决

4、当输入规模为n时,算法增长率最小的是(D)。
A.5n
B. 3nlog3n
C.2n2
D. 20log2n

5、渐进算法分析是指(B)。
A.在最小输入规模下算法的资源代价
B.当规模逐步往极限方向增大时,对算法资源开销“增长率”上的简化分析
C.数据结构所占用的空间
D.算法在最佳情况、最差情况和平均情况下的代价

6、采用“顺序搜索法”从一个长度为N的随机分布数组中搜寻值为K的元素。以下对顺序搜索法分析正确的是(A)。
A.最佳情况的渐进代价要好于最差情况和平均情况的渐进代价
B.最佳情况的渐进代价要好于平均情况的渐进代价,而平均情况的渐进代价要好于最差情况的渐进代价
C.最佳情况、最差情况和平均情况下,顺序搜索法的渐进代价都相同
D.最佳情况和平均情况的渐进代价要好于最差情况的渐进代价

7、算法分析中,记号0表示渐进上界,记号欧米格表示(A)
A.渐进下界
B.紧渐进界
C.非紧上界
D.渐进上界

8、一个算法应该包含如下几条性质,除了©。
A.有限性
B.可终止性
C.二义性
D.正确性

第二章

1、在寻找n个元素中第k小元素问题中,如快速排序算法思想,运用分治算法对n个元素进行划分,如何选择划分基准?下面(D)答案解释最合理。
A.用中位数的中位数方法寻找划分基准
B.随机选择一个元素作为划分基准
C.取子序列的第一个元素作为划分基准
D.以上皆可行。但不同方法,算法复杂度上界可能不同

2、递归通常用(A)来实现。
A.栈
B.队列
C.数组
D.有序的线性表

3、用二分查找从100个有序整数中查找某数,最坏情况下需要比较的次数是©:
A. 99
B. 10
C. 7
D. 50

4、用分治法解决一个规模为N的问题。下列哪种方法是最慢的?©
A.每步将问题分成规模均为N/3的3个子问题,且治的步骤耗时O(NlogN)
B.每步将问题分成规模均为N/3的2个子问题,且治的步骤耗时O(N)
C.每步将问题分成规模均为N/2的3个子问题,且治的步骤耗时O(N)
D.每步将问题分成规模均为N/3的2个子问题,且治的步骤耗时O(NlogN)

5、对N个记录进行归并排序,归并趟数的数量级是(B):
A. O(NlogN)
B. O(logN)
C. O(N2)
D. O(N)

6、给定100,000,000个待排记录,每个记录256字节,内存为128MB,一次只能读入512个记录,若采用简单2路归并,需要做多少轮?(D)
A.8
B.10
C.7
D.9

7、在外排序中,设我们有5个长度分别为2、8、9、5、3的有序段。则下列哪种归并顺序可以得到最短归并时间?
(D)
A.归并长度为2和3的有序段,得到段Run#1;归并长度为5和8的有序段,得到段Run#2;将Run#2与长度为9的有序段归并,得到段Run#3;归并Run#1和Run#3
B.归并长度为2和3的有序段,得到段Run#1;将Run#1与长度为5的有序段归并,得到段Run#2;将Run#2与长度为8的有序段归并,得到段Run#3;将Run#3与长度为9的有序段归并
C.归并长度为2和3的有序段,得到段Run#1;归并长度为5和8的有序段,得到段Run#2;归并Run#1和Run#2,得到段Run#3;将Run#3与长度为9的有序段归并
D.归并长度为2和3的有序段,得到段Run#1;将Run#1与长度为5的有序段归并,得到段Run#2;归并长度为8和9的有序段,得到段Run#3;归并Run#2和Run#3

8、分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决子问题,最后将子问题的解组合起来形成原问题的解。这要求原问
题和子问题©
A.问题规模相同,问题性质不同
B.问题规模相同,问题性质相同
C.问题规模不同,问题性质相同
D.问题规模不同,问题性质不同

9、采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是(D):
A.每次划分后,先处理较短的分区可以减少递归次数
B.每次划分后,先处理较长的分区可以减少递归次数
C.递归次数与初始数据的排列次序无关
D.递归次数与每次划分后得到的分区处理顺序无关

10、解决一个问题通常有多种方法。若说一个算法“有效”是指(A)。
A.这个算法能在一定的时间和空间资源限制内将问题解决;这个算法比其他已知算法都更快地将问题解决。
B.这个算法比其他已知算法都更快地将问题解决
C.这个算法能在人的反应时间内将问题解决
D.这个算法能在一定的时间和空间资源限制内将问题解决

11、对线性表进行二分查找时,要求线性表必须©。
A.以链接方式存储
B.以顺序方式存储
C.以顺序方式存储,且结点按关键字有序排序
D.以链接方式存储,且结点按关键字有序排序

12、对N个记录进行归并排序,空间复杂度为©:
A. O(logN)
B.O(NlogN)
C.O(N)
D.O(N2)

13、下列排序算法中,(D)算法可能出现:在最后一趟开始之前,所有的元素都不在其最终的位置上?(设待排元素个数N>2)
A.冒泡排序
B.快速排序
C.堆排序
D.插入排序

14.若数据元素序列{12,13,8,11,5,16,2,9}是采用下列排序方法之一得到的第一趟排序后的结果,则该排序算法只能是©:
A.快速排序
B.堆排序
C.归并排序
D.选择排序

  • 插入排序算法在最好情况下的时间复杂度为O(n)。(对)
  • 仅基于比较的算法能得到的最好的“最坏时间复杂度”是O(NlogN)。(对)
  • 对N个记录进行快速排序,在最坏的情况下,其时间复杂度是O(NlogN)。(错)
  • 在具有N个结点的单链表中,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)(错)

第三章

1、切原木问题:给定一根长度为N米的原木;另有一个分段价格表,给出长度L=1,2,.,M对应的价格P。要求你找出适当切割原木分段出售所能获得的最大
收益RN。例如,根据下面给出的价格表,若要出售一段8米长的原木,最优解是将其切割为2米和6米的两段,这样可以获得最大收益R8=P2+P6=5+17=
22。而若要出售一段3米长的原木,最优解是根本不要切割,直接售出。LengthL12345678910,PriceP,1589101717202328,下列哪句陈
述是错的?(B)
A.算法的时间复杂度是O(N2)
B.若N>M,则有Rn =max1≤i<N{R+Rn-M}
C.若N≤M,则有Rn=max{PN,max1≤i<N{Rj+RN-i}}
D.此问题可以用动态规划求解

2、给定递推方程fij.k=fij+1.k+minoslsk{fi-1j+W,}。要通过循环解此方程,我们一定不能用下列哪种方法填表?(B)
A. for i in 0 to n: forjin n to 0: for k in n to 0
B.for i in 0 to n: for j in 0 to n: for k in 0 to n
C.for i in 0 to n: forj in n to 0: for kin 0 to n
D.for k in 0 to n: for i in 0 to n: forj in n to 0

3、在动态规划中,我们要推导出一个子问题的解与其他子问题解的递推关系。要将这种关系转换为自底向上的动态规划算法,我们需要以正确的顺序填写子
问题解的表格,使得在解任一子问题时,所有它需要的子问题都已经被解决了。在下列关系式中,哪一个是不可能被计算的?(B)
A.A(ij)=F(A(ij-1),A(i-1j-1),A(i-1j+1))
B.A(ij)=F(A(i-2j-2),A(i+2j+2))
C.A(ij)=F(A(min{ij}-1,min{ij}-1),A(max{ij}-1,max{ij}-1))
D.A(ij)=min(A(i-1j),A(ij-1),A(i-1j-1))

4、如果一个问题可以用动态规划算法解决,则总是可以在多项式时间内解决的。(错)
5、用动态规划而非递归的方法去解决问题时,关键是将子问题的计算结果保存起来,使得每个不同的子问题只需要被计算一次。子问题的解可以被保存在数
组或哈希散列表中。(对)
6、最优二叉搜索树的根结点一定存放的是搜索概率最高的那个关键字。(错)

第四章

1、对于0-1背包问题和背包问题的解法,下面©答案解释正确。
A.0-1背包问题和背包问题都可用贪心算法求解
B.0-1背包问题可用贪心算法求解,但背包问题则不能用贪心算法求解
C.0-1背包问题不能用贪心算法求解,但可以使用动态规划或搜索算法求解,而背包问题则可以用贪心算法求解
D.因为0-1背包问题不具有最优子结构性质,所以不能用贪心算法求解

2、给定一段文本中的4个字符(u,v,w,x) 及其出现频率(fu,fv,fw,fx)。若对应的哈夫曼编码为u:00,v:010,w:011,x:1,则下列哪组频率可能对应(fu,fv,fw,fx)?(B)
A.15,23,16,45
B.30,21,12,33
C.41,12,20,32
D.55,22,18,46

3、给定一段文本中的4个字符(a,b,c,d)。设a和b具有最低的出现频率。下列哪组编码是这段文本可能的哈夫曼编码?(A)
A.a: 000,b:001,c:01,d:1
B.a: 000,b:001,c:01,d:11
C.a: 000,b:001,c:10,d:1
D.a: 010, b:001,c:01,d:1

4、在活动选择问题(Activity Selection Problem)中,令S 为活动的集合。以“每次收集最迟开始的活动”为贪心原则,可以正确找到S 中相互兼容活动
的最大规模的子集合。(对)
5、只有当局部最优跟全局最优解一致的时候,贪心法才能给出正确的解。(对)
6、令S为活动选择问题(ActivitySelection Problem)中所有活动的集合。则一定存在S的某个最大相容活动子集是包含了最早结束的活动am的。(对)
7、令S为活动选择问题(Activity SelectionProblem)中所有活动的集合。则最早结束的活动am一定被包含在S的所有最大相容活动子集中。 (错)

8、令C为字母集,其中每个字符c有对应频率c.freq。若C的大小为n,则其中任一字符c的最优前缀编码长度都不会超过n-1.(对)

第五、六章

1、关于回溯算法和分支限界法,以下(D)是不正确描述。
A.分支限界法采用广度优先或最小耗费优先(最大效益优先)的结点生成策略
B.回溯法采用深度优先的结点生成策略
C.分支限界法中,活结点一旦成为扩展结点,就一次性产生其所有儿子结点,在这些儿子结点中,那些导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子加入活结点表中
D.回溯法中,每个活结点只有一次机会成为扩展结点

2、关于回溯搜索法的介绍,下面©是不正确描述。
A.回溯法是一种既带系统性又带有跳跃性的搜索算法
B.回溯法有“通用解题法”之称,它可以系统地搜索一个问题的所有解或任意解
C.回溯算法需要借助队列这种结构来保存从根结点到当前扩展结点的路径
D.回溯算法在生成解空间的任一结点时,先判断该结点是否可能包含问题的解,如果肯定不包含,则跳过对该结点为根的子树的搜索,逐层向祖先结点回溯

3、用回溯法求解最优装载问题时,若待选物品为m种,则该问题的解空间树的结点个数为(B)。
A.2(m)
B. 2(m+1)_1
C.2(m+1)
D.m!

4、优先队列通常用以下©数据结构来实现。
A.栈
B.队列
C.堆
D.二叉查找树

5、在分支限界算法中,根据从活结点表中选择下一扩展结点的不同方式可有几种常用分类,以下©描述最为准确
A.采用FIFO队列的队列式分支限界法
B.采用最小值堆的优先队列式分支限界法
C.以上都常用,针对具体问题可以选择采用其中某种更为合适的方式
D.采用最大值堆的优先队列式分支限界法

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值