全部科目 > 软件设计师 >
2022年下半年 上午试卷 综合知识
第 63 题
知识点 折半查找  
章/节 计算机软件知识  
 
 
折半查找在有序数组A中查找特定的记录K:通过比较K和数组中的中间元素A[mid]进行,如果相等,则算法结束∶如果K小于[Amid],则对数组的前半部分进行折半查找∶否则对数组的后半部分进行折半查找。根据上述描述,折半查找算法采用了(62)算法设计筑略。对有序数组(3,14,27,39,42,55,70,85,93,98),成功查找和失败查找所需要的平均比较次数分别是(63)(假设查找每个元素的概率是相同的)。
 
  A.  29/10和29/11
 
  B.  30/10和30/11
 
  C.  29/10和39/11
 
  D.  30/10和40/11
 
 




 
 
相关试题     静态查找表 

  第57题    2009年上半年  
下面关于查找运算及查找表的叙述,错误的是(57) 。

  第34题    2011年下半年  
下图所示的逻辑流实现折半查找功能,最少需要(34)个测试用例可以覆盖所有的可能路径。


  第57题    2010年上半年  
对n个元素的有序表A[1..n]进行二分(折半)查找(除2取商时向下取整),查找元素A[i] 时,最多与A中的(57)个元素进行比较。

 
知识点讲解
· 折半查找
 
        折半查找
        折半查找的基本思想是:设查找表的元素存储在一维数组r[1…n]中,那么在表中的元素已经按关键字递增(或递减)的方式排序的情况下,可进行折半查找。其方法是:首先将待查的key值与表r中间位置上(下标为mid)记录的关键字进行比较,若相等则查找成功;若key>r[mid].key,则说明待查记录只可能在后半个子表r[mid+1…n]中,下一步应在后半个子表中再进行折半查找;若key<r[mid].key,说明待查记录只可能在前半个子表r[1…mid-1]中,下一步应在r的前半个子表中进行折半查找。这样通过逐步缩小范围,直到查找成功或子表为空时失败为止。
        折半查找的性能分析:折半查找的过程可以用一棵二叉树描述,不妨设节点总数为n=2h-1,则判定树是深度为h=log2(n+1)的满二叉树。在等概率情况下,折半查找的平均查找长度为
        当n值较大时,ASLbs≈log2(n+1)-1。
        折半查找比顺序查找的效率高,但它要求查找表进行顺序存储并且按关键字有序排列,因此对表进行元素的插入和删除时,需要移动大量的元素,所以折半查找适用于表不易变动,且又经常进行查找的情况。



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

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