全部科目 > 软件设计师 >
2009年上半年 上午试卷 综合知识
第 63 题
知识点 分治法   分治法  
章/节 计算机软件知识  
 
 
现有16枚外形相同的硬币,其中有一枚比真币的重量轻的假币,若采用分治法找出这枚假币,至少比较(63)次才能够找出该假币。
 
  A.  3
 
  B.  4
 
  C.  5
 
  D.  6




 
 
相关试题     计算机软件知识 

  第55题    2014年上半年  
假定某企业2014年5月的员工工资如下表所示:


  第58题    2016年下半年  
设有一个包含n个元素的有序线性表。在等概率情况下删除其中的一个元素,若采用顺序存储结构,则平均需要移动(58)个元素;若采用单链表存储,则平均需要移动(5..

  第61题    2017年上半年  
在12个互异元素构成的有序数组a[1..12] 中进行二分查找(即折半查找,向下取整),若待查找的元素正好等于a[9],则在此过程中,依次与数组中的( )比较后,查找成功..

 
知识点讲解
· 分治法
· 分治法
 
        分治法
               递归的概念
               递归是指子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的常用方法。
               递归有两个基本要素:边界条件,即确定递归到何时终止,也称为递归出口;递归模式,即大问题是如何分解为小问题的,也称为递归体。
               分治法的基本思想
               分治法的设计思想是将一个难以直接解决的大问题分解成一些规模较小的相同问题,以便各个击破、分而治之。如果规模为n的问题可分解成k个子问题,1<kn,这些子问题互相独立且与原问题相同。分治法产生的子问题往往是原问题的较小模式,这就为递归技术提供了方便。
               一般来说,分治算法在每一层递归上都有3个步骤。
               (1)分解。将原问题分解成一系列子问题。
               (2)求解。递归地求解各子问题。若子问题足够小,则直接求解。
               (3)合并。将子问题的解合并成原问题的解。
 
        分治法
        1)基本思想
        分治法也许是最广泛使用的算法设计方法,其基本思想是把大问题的解分解成一些较小的问题,然后由小问题的解方便地构造出大问题的解。
        2)典型应用:Hanoi塔问题
        Hanoi塔问题描述如下:有n个盘子在A处,盘子从大到小,最上面的盘子最小。现在要把这n个盘子从A处搬到C处,可以在B处暂存,但任何时候都不能出现大的盘子压在小的盘子上面的情况。
        当只有一个盘子时,直接从A移到C即可;如果已知n-1个盘子的移动方案,那么n个盘子的移动方案如下:先把前n-1个盘子从A借助C移动到B处,再把第n个盘子从A处直接移动到C处,然后再将B处的n-1个盘子从B处借助A处移动到C处,至此就完成了全部盘子的移动。具体C代码实现如下:
        



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有