全部科目 > 软件设计师 >
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




 
 
相关试题     计算机软件知识 

  第25题    2011年上半年  
系统中有R类资源m个,现有n个进程互斥使用。若每个进程对R资源的最大需求为w,那么当m、n、w分别取下表中的值时,对于表中的①?⑥种情况,(25)可能会发生死锁。若..

  第31题    2021年上半年  
某销售公司员工关系E(工号、姓名、部门名、电话、住址),商品关系C(商品号、商品名、库存数)和销售关系EC(工号、商品号、销售数、销售日期)。查询“销售部1”在2..

  第58题    2018年上半年  
对下面的二叉树进行顺序存储(用数组MEM表示),已知结点A、B、C在MEM中对应元素的下标分别为1、2、3,那么结点D、E、F对应的数组元素下标为(  )。

 
知识点讲解
· 折半查找
 
        折半查找
        折半查找的基本思想是:设查找表的元素存储在一维数组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-2026 All Rights Reserved
软考在线版权所有