● 某一维数组中依次存放了数据元素 12,23,30,38,41,52,54,76,85,在用折半(二分)查找方法(向上取整)查找元素54时,所经历“比较”运算的数据元素依次为 (62) 。(62)A. 41, 52, 54B. 41, 76, 54C. 41, 76, 52, 54D. 41, 30, 76, 54

题目

● 某一维数组中依次存放了数据元素 12,23,30,38,41,52,54,76,85,在用折半(二分)查找方法(向上取整)查找元素54时,所经历“比较”运算的数据元素依次为 (62) 。

(62)

A. 41, 52, 54

B. 41, 76, 54

C. 41, 76, 52, 54

D. 41, 30, 76, 54


相似考题
参考答案和解析
正确答案:B

更多“● 某一维数组中依次存放了数据元素 12,23,30,38,41,52,54,76,85,在用折半(二分)查找方法(向上取 ”相关问题
  • 第1题:

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

    A.n

    B.[log2n]-1

    C.n/2

    D.[log2n]+1


    正确答案:D
    解析:折半查找不成功时候需要比较次数最多,且最多不超过[log2n]+1次。

  • 第2题:

    某一维数组中依次存放了数据元素12,23,30,38,41,52,54,76,85,在用折半(二分)查找方法(向上取整)查找元素54时,所经历“比较”运算的数据元素依次为(62)。

    A.41,52,54

    B.41,76,54

    C.41,76,52,54

    D.41,30,76,54


    正确答案:B
    解析:本题考查数据结构基础知识。设查找表的元素存储在一维数组r[1..n]中,那么在表中的元素已经按关键字递增(或递减)的方式排序的情况下,进行折半查找的方法是:首先将待查元素的关键字(key)值与表r中间位置上(下标为mid)的记录的关键字进行比较,若相等,则查找成功。若key>r[mid].key,则说明待查记录只可能在后半个子表r[mid+1..n]中,下一步应在后半个子表中再进行折半查找:若keyr[mid].key,说明待查记录只可能在前半个子表 r[1..mid-1]中,下一步应在r的前半个子表中进行折半查找,这样通过逐步缩小范围,直到查找成功或子表为空时失败为止。在题中,以中间元素41为界将数组元素分为12,23,30,38和52,54,76,85两部分,显然54在后半部分,该部分的中间元素为54(向下取整)或76(向上取整),在52、54构成的子查找表中,向上取整的中间元素为54,因此查找元素54所经历“比较”运算的数据元素依次为41,76,54。

  • 第3题:

    性表中采用折半查找法(二分查找法)查找一个数据元素,线性表应(54)。

    A.数据元素按值有序

    B.采用顺序存储结构

    C.据元素按值有序,并且采用顺序存储结构

    D.据元素按值有序,并且采用链式存储结构


    正确答案:C
    解析:只有当线性表中数据元素按值大小有序排列,并且采用顺序存储结构时才能使用折半查找方法查找元素。即使线性表中数据元素按值大小有序排列,但采用的不是顺序存储结构(如链式),仍然不能够采用折半查找方法。本题应选C。

  • 第4题:

    ●在有11个元素的有序数组a[1..11]中进行二分查找(即折半查找),依次与(37)

    比较后,成功找到元素a[5]。

    (37)

    A.a[6]、a[2]、a[5]

    B.a[6]、a[4]、a[5]

    C.a[6]、a[3]、a[4]、a[5]

    D.a[6]、a[8]、a[4]、a[5]


    正确答案:C

  • 第5题:

    第四题 阅读以下说明、C函数和问题,回答问题1和问题2将解答填入答题纸的对应栏内。
    【说明】
    当数组中的元素已经排列有序时,可以采用折半查找(二分查找)法查找一个元素。下面的函数biSearch(int r[],int low,int high,int key)用非递归方式在数组r中进行二分查找,函数biSearch_rec(int r[],int low,int high,int key)采用递归方式在数组r中进行二分查找,函数的返回值都为所找到元素的下标;若找不到,则返回-1。

    【C函数1】
    int biSearch(int r[],int low,int high,int key)
    //r[low..high] 中的元素按非递减顺序排列
    //用二分查找法在数组r中查找与key相同的元素
    //若找到则返回该元素在数组r的下标,否则返回-1
    {
    int mid;
    while((1)) {
    mid = (low+high)/2 ;
    if (key ==r[mid])
    return mid;
    else if (key (2);
    else
    (3);
    }/*while*/
    return -1;
    }/*biSearch*/

    【C 函数 2】
    int biSearch_rec(int r[],int low,int high,int key)
    //r[low..high]中的元素按非递减顺序排列
    //用二分查找法在数组r中查找与key相同的元素
    //若找到则返回该元素在数组r的下标,否则返回-1
    {
    int mid;
    if((4)) {
    mid = (low+high)/2 ;
    if (key ==r[mid])
    return mid;
    else if (key return biSearch_rec((5),key);
    else
    return biSearch_rec((6),key);
    }/*if*/
    return -1;
    }/*biSearch_rec*/ 问题:4.1 (12分)
    请填充C函数1和C函数2中的空缺,将解答填入答题纸的对应栏内。 问题:4.2 (3分)
    若有序数组中有n个元素,采用二分查找法查找一个元素时,最多与( )个数组元素进行比较,即可确定查找结果。
    (7)备选答案:
    A.[log2(n+1)] B.[n/2] C.n-1 D.n


    答案:
    解析:
    low<=high
    (2)high=mid-1
    (3)low=mid+1
    (4)low<=high
    (5)low,mid-1
    (6)mid+1,high
    (7)A
    【解析】

    本题考察折半查找。二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
    二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果xa[n/2],则只要在数组a的右半部搜索x。
    总共有n个元素,渐渐跟下去就是n,n/2,n/4,....n/2^k(接下来操作元素的剩余个数),其中k就是循环的次数。

  • 第6题:

    已知有序数组a的前10000个元素是随机整数,现需查找某个整数是否在该数组中。以下方法中,( )的查找效率最高。

    A.二分查找法
    B.顺序查找法
    C.逆序查找法
    D.哈希查找法

    答案:D
    解析:

  • 第7题:

    在55个互异元素构成的有序表A[1..55]中进行折半查找(或二分查找,向下取整)。若需查找的元素等于A[19],则在查找过程中参与比较的元素依次为( )

    A.A[28]、A[30]、A[15]、A[20]
    B.A[28]、A[14]、A[21]、A[17]
    C.A[28]、A[15]、A[22]、A[18]
    D.A[28]、A[18]、A[22]、A[20]

    答案:B
    解析:
    本题考查数据结构基础知识。对55个元素构成的有序表进行折半查找时,可用判定树描述查找过程,由于A[19]小于中间元素A[28],所以判定树的左分支如下所示。从中可知,查找过程中参与比较的元素分别为A[28]、A[14]、A[21]、A[17]、A[19]。

  • 第8题:

    在55个互异元素构成的有序表A[1..55]中进行折半查找(或二分查找,向下取整)。若需要找的元素等于A[19],则在查找过程中参与比较的元素依次为( )、A[19]。

    A.A[28]、A[30]、A[15]、A[20]
    B.A[28]、A[14]、A[21]、A[17]
    C.A[28]、A[15]、A[22]、A[18]
    D.A[28]、A[18]、A[22]、A[20]

    答案:B
    解析:
    折半查找时,下标计算过程为(注:key的值与A[19]相同):
    1、mid=[(1+55)/2]=28,把A[28]与key的值比较后,缩小查找范围为:A[1]至A[27];
    2、mid=[(1+27)/2]=14,把A[14]与key的值比较后,缩小查找范围为:A[15]至A[27];
    3、mid=[(15+27)/2]=21,把A[21]与key的值比较后,缩小查找范围为:A[15]至A[20];
    4、mid=[(15+20)/2]=17,把A[17]与key的值比较后,缩小查找范围为:A[18]至A[20];
    5、mid=[(18+20)/2]=19,把A[19]与key的值比较后,发现值相等,找到目标。

  • 第9题:

    在顺序表(2,4,6,8,10)中采用折半查找方法查找元素5,要经过()次元素之间的比较。


    正确答案:3

  • 第10题:

    关于数组的正确说法是()

    • A、在用Dimension A(10,4)定义了数组A之后,元素A(3,2)就是A(10)
    • B、只能定义一维或二维数组,且数组的下标总是从0开始
    • C、在用Dimension A(10)定义了数组A之后,A=1是错误的语句
    • D、同一数组各元素的数据类型必须一致

    正确答案:A

  • 第11题:

    单选题
    关于数组的正确说法是()
    A

    在用Dimension A(10,4)定义了数组A之后,元素A(3,2)就是A(10)

    B

    只能定义一维或二维数组,且数组的下标总是从0开始

    C

    在用Dimension A(10)定义了数组A之后,A=1是错误的语句

    D

    同一数组各元素的数据类型必须一致


    正确答案: D
    解析: 暂无解析

  • 第12题:

    填空题
    在序列(2,5,8,11,15,16,22,24,27,35,50)中采用折半查找(二分查找)方法查找元素24,需要进行()次元素之间的比较。

    正确答案: 4
    解析: 暂无解析

  • 第13题:

    ● 对 n 个元素的有序表 A[1..n]进行二分(折半)查找,则成功查找到表中的任意一个元素时,最多与A 中的 (39) 个元素进行比较。

    (39)


    正确答案:D

  • 第14题:

    将数据元素2,4,6,8,10,12,14,16,18,20依次存放于一个一维数组中,然后采用折半查找方法查找数组元素12,被比较过的数组元素的下标依次为(52)。

    A.10,16,12

    B.10,12,16

    C.5,8,6

    D.5,6,8


    正确答案:C
    解析:第一次与数组下标为5的元素比较,不匹配;第二次与下标为8的元素比较,不匹配;第三次与下标为6的元素比较,匹配,查找成功。

  • 第15题:

    在13个元素构成的有序表A[1..13]中进行折半查找(或称为二分查找,向下取整)。那么以下叙述中,错误的是()。

    A.无论要查找哪个元素,都是先与A[7]进行比较

    B.若要查找的元素等于A[9],则分别需与A[7]、A[11]、A[9]进行比较

    C.无论要查找的元素是否在A[]中,最多与表中的4个元素比较即可

    D.若待查找的元素不在A[]中,最少需要与表中的3个元素进行比较


    正确答案:B

  • 第16题:

    ● 某一维数组中依次存放了数据元素15,23,38,47,55,62,88,95,102,123,采用折半(二分)法查找元素95时,依次与 (60) 进行了比较。

    (60)

    A. 62, 88, 95

    B. 62, 95

    C. 55, 88, 95

    D. 55, 95


    正确答案:D

  • 第17题:

    已知有序数组a的前10000个元素是随机整数,现需查找某个整数是否在该数中,以下方法中,()的查找效率最高

    A.二分查找法
    B.顺序查找法
    C.逆序查找法
    D.哈希查找法

    答案:D
    解析:
    在计算机程序中,如果需要在一秒种内查找上千条记录通常使用哈希表(例如拼写检查器)哈希表的速度明显比树快并且,编程实现也相对容易。

  • 第18题:

    若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为()。

    A.9,5,3
    B.9,5,2,3
    C.1,2,3
    D.9,4,2,3

    答案:D
    解析:
    二分查找的基本思想是将n个元素分成大致相等的两部分,取中间位置的节点值与关键字做比较,如果相等,则查找成功;如果关键字的值小于中间节点,则只要在数组的左半部分继续搜索,重复与中间值进行比较,直至查找成功或失败;如果关键字大于中间值,则只要在数组的右半部搜索即可。

  • 第19题:

    某一维数组中依次存放了数据元素15,23,38,47,55,62,88,95,102,123,采用折半(二分)法查找元素95时,依次与( )进行了比较。

    A.62,88,95
    B.62,95
    C.55,88,95
    D.55,95

    答案:D
    解析:
    本题主要考查折半(二分)法查找算法。这里首先就需要我们能清楚理解该查找算法。
    在本题中,给出数据序列为15,23,38,47,55,62,88,95,102,123,其中有10个元素,那么首先进行比较的应该是第5个元素,即55,由于95大于55,那么应该在后半部分进行查找,这是应该与第8个元素进行比较,刚好是95,查找成功,然后结束。因此比较的元素有55和95。

  • 第20题:

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

    A.a[6]、 a[7]、 a[8]、 a[9]
    B.a[6]、a[9]
    C. a[6]、 a[7]、 a[9]
    D.a[6]、 a[8]、 a[9]

    答案:B
    解析:

  • 第21题:

    在序列(2,5,8,11,15,16,22,24,27,35,50)中采用折半查找(二分查找)方法查找元素24,需要进行()次元素之间的比较。


    正确答案:4

  • 第22题:

    单选题
    若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为()。
    A

    1,2,3

    B

    9,5,2,3

    C

    9,5,3

    D

    9,4,2,3


    正确答案: D
    解析: 暂无解析

  • 第23题:

    单选题
    在Array类中,可以对一维数组中的元素查找的方法是()。
    A

    Sort()

    B

    BinarySearch()

    C

    Convert()

    D

    Index()


    正确答案: D
    解析: 暂无解析