【计算机类职业资格】软件设计师-常用算法设计方法及答案解析.doc
《【计算机类职业资格】软件设计师-常用算法设计方法及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】软件设计师-常用算法设计方法及答案解析.doc(12页珍藏版)》请在麦多课文档分享上搜索。
1、软件设计师-常用算法设计方法及答案解析(总分:29.00,做题时间:90 分钟)利用贪心法求解 0/1 背包问题时, (26) 能够确保获得最优解。用动态规划方求解 O/1 背包问题时,将“用前 i 个物品来装容量是 x 的背包”的 0/1 背包问题记为 KNAP(1,i,X)设 fi(X)是 KNAP(1,i,X)最优解的效益值,第 j 个物品的重量和放入背包后取得效益值分别为 W 和 p(j=1n),则依次求解 f0(X),f1(X),f n(X)的过程中使用的递推关系式为 (27) 。(分数:2.00)A.优先选取重量最小的物品B.优先选取效益最大的物品C.优先选取单位重量效益最大的物品
2、D.没有任何准则A.fi(X)=minfi-1(X),fi-1(X)+PiB.fi(X)=maxfi-1(X),fi-1(X-Wi)+PiC.fi(X)=minfi-1(X-Wi),fi-1(X-Wi)+pi)D.fi(X)=maxfi-1(x-Wi),fi-1(X)+Pi1.拉斯维加斯(Las Vegas)算法是一种常用的 (3) 算法。(分数:1.00)A.确定性B.近似C.概率D.加密2.用递归算法实现 n 个相异元素构成的有序序列的二分查找,采用一个递归工作栈时,该栈的最小容量应为 (11) 。(分数:1.00)A.nB.n/2C.log2nD.log2(n+1)3.快速排序算法采用的
3、设计方法是 (23) 。(分数:1.00)A.动态规划法(Dynamic Programming)B.分治法(Divideand Conquer)C.回溯法(Backtracking)D.分枝定界法(Branch and Bound)4.采用动态规划策略求解问题的显著特征是满足最优性原理,其含义是 (29) 。(分数:1.00)A.当前所作出的决策不会影响后面的决策B.原问题的最优解包含其子问题的最优解C.问题可以找到最优解,但利用贪心法不能找到最优解D.每次决策必须是当前看来最优的决策才可以找到最优解5.在分支限界算法设计策略中,通常采用 (4) 搜索问题的解空间。(分数:1.00)A.深度
4、优先B.广度优先C.自底向上D.拓扑序列6.下面的程序段违反了算法的 (2) 原则。Void sam()int n=2;while(!odd(n)n+=2printf(n);(分数:1.00)A.有穷性B.确定性C.可行性D.健壮性设求解某问题的递归算法如下:F(int n)if n=1 Move(1)elseF(n-1);Move(n);F(n-1);求解该算法的计算时间时,仅考虑算法 Move 所做的计算为主要计算,且 Move 为常数级算法。则算法 F 的计算时间 T(n)的递推关系式为 (9) ;设算法 Move 的计算时间为 k,当 n=4 时,算法 F 的计算时间为 (10) 。(
5、分数:2.00)A.T(n)=T(n-1)+1B.T(n)=2T(n-1)C.T(n)=2T(n-1)+1D.T(n)=2T(n+1)+1A.14kB.15kC.16kD.17k7.贪婪法是一种 (20) 的算法。(分数:1.00)A.不求最优,只求满意B.只求最优C.求取全部可行解D.求取全部最优解在数据压缩编码的应用中,哈夫曼(Huffman)算法可以用来构造具有 (18) 的二叉树,这是一种采用了 (19) 的算法。(分数:2.00)A.前缀码B.最优前缀码C.后缀码D.最优后缀码A.贪心B.分治C.递推D.回溯以下不属于算法的基本特征的是 (7) 。穷举法的适用范围是 (8) 。(分数
6、:2.00)A.有确切定义的B.可行的C.可描述的D.不能有二义性A.一切问题B.解的个数极多的问题C.解的个数不太多的问题D.不适合设计算法8.利用动态规划法求解每对节点之间的最短路径问题时,设有向图 G=V,E共有 n 个节点,节点编号1n,设 C 是 G 的成本邻接矩阵,用 Dk(i,j)表示从 i 到 j 并且不经过编号比 k 还大的节点的最短路径的长度(D n(i,j)即为图 G 中节点 i 到 j 的最短路径长度),则求解该问题的递推关系式为 (28) 。(分数:1.00)A.Dk(i,j)=Dk-1(i,j)+C(i,j)B.Dk(i,j)=minDk-1(i,j),Dk-1(i
7、,j)+C(i,j)C.Dk(i,j)=Dk-1(i,k)+Dk-1(k,j)D.Dk(i,j)=minDk-1(i,j),Dk-1(i,k)+Dk-1(k,j)9.算法是对问题求解过程的一类精确描述,算法中描述的操作都是可以通过已经实现的基本操作在限定时间内执行有限次来实现的,这句话说明算法具有 (5) 特性。(分数:1.00)A.正确性B.确定性C.可行性D.健壮性在下列算法设计方法中, (16) 在求解问题的过程中并不从整体最优上加以考虑,而是作出在当前看来是最好的选择。利用该设计方法可以解决 (17) 问题。(分数:2.00)A.分治法B.贪心法C.动态规划法D.回溯法A.排序B.检索
8、C.背包D.0/1 背包对于求取两个长度为 n 的字符串的最长公共子序列(LCS)问题,利用 (24) 策略可以有效地避免子串最长公共子序列的重复计算,得到时间复杂度为 O(n2)的正确算法。串 1,0,0,1,O,1,0,1和0,1,0,1,1,0,1,1的最长公共子序列的长度为 (25) 。(分数:2.00)A.分治B.贪心C.动态规划D.分支限界A.3B.4C.5D.610.设某算法的计算时间可用递推关系式 T(n)=2T(n/2)+n 表示,则该算法的时间复杂度为 (1) 。(分数:1.00)A.O(lgn)B.O(nlgn)C.O(n)D.O(n2)11.用迭代法求解方程 x5-x-
9、1=0,下列迭代公式不可能正确的是 (6) 。(分数:1.00)A.B.C.D.递归算法的执行过程,一般来说,可先后分成 (12) 和 (13) 两个阶段。(分数:2.00)A.试探B.递推C.枚举D.分析A.回溯B.回归C.返回D.合成以关键字比较为基础的排序算法在最坏情况下的计算时间下界为 O(nlogn)。下面的排序算法中,最坏情况下计算时间可以达到 O(nlogn)的是 (21) ,该算法采用的设计方法是 (22) 。(分数:2.00)A.归并排序B.插入排序C.选择排序D.冒泡排序A.分治法B.贪心法C.动态规划方法D.回溯法若一个问题的求解既可以用递归算法,也可以用递推算法,则往往
10、用 (14) 算法,因为 (15) 。(分数:2.00)A.先递归后递推B.先递推后递归C.递归D.递推A.递推的效率比递归高B.递归宜于问题分解C.递归的效率比递推高D.递推宜于问题分解软件设计师-常用算法设计方法答案解析(总分:29.00,做题时间:90 分钟)利用贪心法求解 0/1 背包问题时, (26) 能够确保获得最优解。用动态规划方求解 O/1 背包问题时,将“用前 i 个物品来装容量是 x 的背包”的 0/1 背包问题记为 KNAP(1,i,X)设 fi(X)是 KNAP(1,i,X)最优解的效益值,第 j 个物品的重量和放入背包后取得效益值分别为 W 和 p(j=1n),则依次
11、求解 f0(X),f1(X),f n(X)的过程中使用的递推关系式为 (27) 。(分数:2.00)A.优先选取重量最小的物品B.优先选取效益最大的物品C.优先选取单位重量效益最大的物品 D.没有任何准则解析:A.fi(X)=minfi-1(X),fi-1(X)+PiB.fi(X)=maxfi-1(X),fi-1(X-Wi)+Pi C.fi(X)=minfi-1(X-Wi),fi-1(X-Wi)+pi)D.fi(X)=maxfi-1(x-Wi),fi-1(X)+Pi解析:分析 背包问题描述如下:有不同价值、不同重量的物品 n 件,求从这 n 件物品中选取一部分物品的选择方案,使选中物品的总重量
12、不超过指定的限制重量,但选中物品的价值和最大。0/1 背包:对于每一种物品 I 装入背包只有一种选择,即要么装入要么不装入,不能装入多次或只装入部分。部分背包则是对于每一种物品 I 可以只装入部分。贪心法就是不求最优解,只求可行解的思想,只是局部最优,不考虑整体最优性。因此对于贪心法关键是贪心准则。对于 0/1 背包,贪心法之所以不一定得到最优解是因为它无法保证最终能将背包容量占满,背包空间的闲置使得背包所装物品的总价值降低了。动态规划法是将一个不容易解决的较大问题划分为若干个易于解决的小问题。1.拉斯维加斯(Las Vegas)算法是一种常用的 (3) 算法。(分数:1.00)A.确定性B.
13、近似C.概率 D.加密解析:分析 概率算法允许算法在执行过程中可随机地选择下一个计算步骤。在许多情况下,当算法在执行过程中面临一个选择时,随机性选择常比最优选择要省时,因此概率算法可以在很大程度上降低算法的复杂度。概率算法通常有两个优点。首先,较之那些我们所知的解决同问题最好的确定性算法,概率算法所需的运行时间或空间通常小一些;其次,迄今为止所发现的概率算法总是易于理解和实现的。概率算法可分为四类,分别是数值概率算法、蒙特卡罗算法(Monte Karlo)、拉斯维加斯算法(Las Vegas)和舍伍德算法(Sherwood)。2.用递归算法实现 n 个相异元素构成的有序序列的二分查找,采用一个
14、递归工作栈时,该栈的最小容量应为 (11) 。(分数:1.00)A.nB.n/2C.log2nD.log2(n+1) 解析:分析 根据二分查找的过程,由于需要栈结构实现递归算法,栈的容量应该要保证能存放查找失败时所有未完成运行的算法的活动记录。第一次调用该算法时,栈中加入了一条查找记录,表示待查有序表中元素的个数为 n:第二次调用时,无论是在前半区还是在后半区进行查找,栈中又加入了一条查找记录,所确定的查找区间中的元素最多为n/2:第三次调用时,栈中又加入了条查找记录,所确定的查找区间中的元素最多为 n/4。依次类推,当所确定的查找区间中的元素为。时,递归调用该算法的次数为 log2(n+1)
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 软件 设计师 常用 算法 设计 方法 答案 解析 DOC
