CMS专题

单选题分治算法设计技术()A 一般由三个步骤组成:问题划分、递归求解、合并解B 一定是用递归技术来实现C 将问题划分为k个规模相等的子问题D 划分代价很小而合并代价很大

题目
单选题
分治算法设计技术()
A

一般由三个步骤组成:问题划分、递归求解、合并解

B

一定是用递归技术来实现

C

将问题划分为k个规模相等的子问题

D

划分代价很小而合并代价很大

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

从分治法的一般设计模式可以看出,用它设计出的程序一般是递归算法。()

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


正确答案:√

第2题:

算法策略与递归技术的联系最弱。

A.动态规划

B.贪心

C.回溯

D.分治


正确答案:B
解析:对于具有最优子结构和重叠子问题的问题,可以用动态规划求解问题,求解过程中通常需要建立最优子结构的递归关系。分治算法的基本思想是将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。回溯算法也称为试探算法,该算法首先放弃关于问题规模大小的限制,并将问题的候选解按某种次序逐一枚举和检验。当发现当前候选解不可能是解时,就选择下一个候选解,若当前候选解除了还不满足问题规模要求外,满足所有其他要求时,继续扩大当前候选解的规模,并继续试探。用回溯算法找解的算法常常被编写成递归函数。贪心算法是一种不追求最优解,而是希望得到较为满意解的方法。贪心算法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费大量的时间。贪心法不要回溯。因此贪心算法策略与递归技术的联系最弱。

第3题:

大整数乘积算法是用分治法来设计的。()

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


正确答案:√

第4题:

分析分治合并排序算法的时间复杂性。


参考答案:

第5题:

以下的算法设计方法中,( )以获取问题最优解为目标。

A.回溯方法

B.分治法

C.动态规划

D.递推


正确答案:C
解析:动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是;适合于用动态规划法求解的问题,经分解得到的子问题往往不是独立的。若用分治法来解这类问题,则相同的子问题会被求解多次,以至于最后解决原问题需要耗费指数级时间。动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解,每个解都对应于一个值,我们希望找到具有最优值(最大值或最小值)的那个解。

第6题:

●(58) 算法策略与递归技术的联系最弱。

(58)A. 动态规划 B. 贪心 C. 回溯 D. 分治


正确答案:B

第7题:

与递归技术的联系最弱的是(64)算法策略。

A.贪心

B.回溯

C.分治

D.动态规划


正确答案:A
解析:贪心算法是一种不追求最优解,而是希望得到较为满意解的算法。该算法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费大量的时间。由于贪心法不要回溯,因此贪心算法策略与递归技术的联系最弱。回溯算法也称为试探算法,该算法首先放弃关于问题规模大小的限制,并将问题的候选解按某种次序逐一枚举和检验。当发现当前候选解不可能是解时,就选自择下一个候选解,若当前候选解除了还不满足问题规模要求外,满足所有其他要求时,继续扩大当前候选解的规模,并继续试探。用回溯算法找解的算法常常被编写成递归函数。分治算法的基本思想是将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。对于具有最优子结构和重叠子问题的问题,可以用动态规划求解问题,求解过程中通常需要建立最优子结构的递归关系。

第8题:

快速排序算法是基于分治策略的一种排序算法。()

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


正确答案:√

第9题:

归并排序采用的算法设计方法属于( )。

A.归纳法

B.分治法

C.贪心法

D.回溯方法


正确答案:B
解析:以2一路归并排序为例进行说明。2一路归并是指将两个有序序列合并成一个有序序列,其基本过程为;从两个序列中各取一个元素,进行比较,输出较小的元素,从较小元素所在序列取下一个元素,与未输出的那个元素比较,输出较小者。依此类推,直到输出序列包含了两个初始有序序列的全部元索。对于一个初始无序的序列,可以先将其等分为两个无序的子序列,对这两个子序列再次二分,重复该过程,直到分出的子序列中仅包含一个元素时(一个元素自然是有序的)为止,然后在反复进行2一路归并的过程,最后完成排序。

第10题:

MaxMin算法是怎样分治的


参考答案:Maxmin(p,q,max,min)
  if问题不可分:n=2
  then对两元素进行比较产生max,min;return;
  else
  {m=(p+q)/2;
  Maxmin(p,m,max1,min1);
  maxmin(m+1,q,max2,min2);
  max=maxnum(max1,max2);
  min=minnum(min1,min2);
  }