全部科目 > 软件设计师 >
2023年下半年 上午试卷 综合知识
第 32 题
知识点 数组   折半查找  
关键词 二分查找   有序数组   数组  
章/节 计算机软件知识  
 
 
在12个互异元素构成的有序数组a[1..12] 中进行二分查找(即折半查找,向下取整),若待查找的元素正好等于a[9],则在此过程中,依次与数组中的( )比较后,查找成功结束。
 
  A.  a[6]、a[9]
 
  B.  a[6]、a[8]、a[9]
 
  C.  a[6]、a[7]、a[8]、a[9]
 
  D.  a[6]、a[7]、a[9]




 
 
相关试题     计算机软件知识 

  第63题    2012年下半年  
将数组{1,1,2,4,7,5}从小到大排序,若采用(62)排序算法,则元素之间需要进行的比较次数最少,共需要进行(63)次元素之间的比较。

  第60题    2010年上半年  
栈是一种按“后进先出”原则进行插入和删除操作的数据结构,因此,(60)必须用栈。

  第22题    2009年下半年  
将高级语言源程序翻译为机器语言程序的过程中常引入中间代码。以下关于中间代码的叙述中,错误的是(22)。

 
知识点讲解
· 数组
· 折半查找
 
        数组
               数组的定义及基本运算
               n维数组是一种"同构"的数据结构,其每个元素类型相同、结构一致。数组是定长线性表在维数上的扩张,即线性表中的元素又是一个线性表。
               数组结构的特点是:数据元素数目固定;数据元素具有相同的类型;数据元素的下标关系具有上下界的约束且下标有序。
               对数组进行的基本运算有以下两种。
               (1)给定一组下标,存取相应的数据元素。
               (2)给定一组下标,修改相应的数据元素中某个数据项的值。
               数组的顺序存储
               一旦定义了数组,结构中的数据元素个数和元素之间的关系就不再发生变动,因此数组适合于采用顺序存储结构。
               由于计算机的内存结构是一维线性的,因此存储多维数组时必须按照某种方式进行降维处理,即将数组元素排成一个线性序列,这就产生了次序约定问题。对二维数组有两种存储方式:一种是以列为主序的存储方式;另一种是以行为主序的存储方式。
               设每个数据元素占用L个单元,mn为数组的行数和列数,那么以行为主序优先存储的地址计算公式为
               Loc(aij)=Loc(a11)+((i-1)n+(j-1))L
               同样的,以列为主序优先存储的地址计算公式为
               Loc(aij)=Loc(a11)+((j-1)m+(i-1))L
 
        折半查找
        折半查找的基本思想是:设查找表的元素存储在一维数组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-2025 All Rights Reserved
软考在线版权所有