参考答案和解析
答案:D
解析:
二分查找的基本思想是将n个元素分成大致相等的两部分,取中间位置的节点值与关键字做比较,如果相等,则查找成功;如果关键字的值小于中间节点,则只要在数组的左半部分继续搜索,重复与中间值进行比较,直至查找成功或失败;如果关键字大于中间值,则只要在数组的右半部搜索即可。
更多“若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为()。”相关问题
  • 第1题:

    对具有n个元素的有序序列进行二分查找时,______。

    A.查找元素所需的比较次数与元素的位置无关

    B.查找序列中任何一个元素所需要的比较次数不超过1og2(n+1)

    C.元素位置越靠近序列后端,查找该元素所需的比较次数越少

    D.元素位置越靠近序列前端,查找该元素所需的比较次数越少


    正确答案:B
    解析:二分查找是充分利用了元素间的次序关系,采用分治策略。它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2]则找到x,算法终止。如果xa[n/2],则我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。如果x>a[n/2]则我们只要在数组a的右半部继续搜索x。在二分查找中,查找元素所需的比较次数与元素的位置有关,选项A的说法错误。元素位置越靠近序列后端或前端,查找该元素所需的比较次数越多,选项C和选项D的说法错误。选项B的说法正确,本题正确答案为选项B。

  • 第2题:

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

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

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

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

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


    正确答案:B

  • 第3题:

    在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]。

  • 第4题:

    设有序表为(13,19,25,36,48,51,63,84,91,116,135,200),元素的下标依次为1,2,……,12。设查找元素5,需要进行多少次元素间的比较才能确定不能查到。
    3次。

  • 第5题:

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

    • A、n-1
    • B、n/2
    • C、(log2n)-1
    • D、(log2n)+1

    正确答案:D

  • 第6题:

    若有序表的关键字为1到25的整数,在此序列中利用二分查找法查找数字2,在查找过程中与数字2比较的数字依次为:()、2。


    正确答案:13;6;3;2

  • 第7题:

    在有序表A[1..12]中,采用二分查找算法查等于A[12]的元素,所比较的元素下标依次为()。


    正确答案:6,9,11,12

  • 第8题:

    对有14个元素的有序表A[1..14]作二分查找,查找元素A[4]时的被比较元素依次为()。

    • A、A[1],A[2],A[3],A[4]
    • B、A[1],A[14],A[7],A[4]
    • C、A[7],A[3],A[5],A[4]
    • D、A[7],A[5],A[3],A[4]

    正确答案:C

  • 第9题:

    单选题
    对有序数组{5,13,19,21,37,56,64,75,88,92,100}进行二分查找,成功查找元素19的查找长度(比较次数)是()
    A

    1

    B

    2

    C

    3

    D

    4


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

  • 第10题:

    填空题
    若有序表的关键字为1到25的整数,在此序列中利用二分查找法查找数字2,在查找过程中与数字2比较的数字依次为:()、2。

    正确答案: 13,6,3,2
    解析: 暂无解析

  • 第11题:

    单选题
    对有14个元素的有序表A[1..14]作二分查找,查找元素A[4]时的被比较元素依次为()。
    A

    A[1],A[2],A[3],A[4]

    B

    A[1],A[14],A[7],A[4]

    C

    A[7],A[3],A[5],A[4]

    D

    A[7],A[5],A[3],A[4]


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

  • 第12题:

    问答题
    设有序表为(13,19,25,36,48,51,63,84,91,116,135,200),元素的下标依次为1,2,……,12。设查找元素5,需要进行多少次元素间的比较才能确定不能查到。

    正确答案: 3次。
    解析: 暂无解析

  • 第13题:

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

    (39)


    正确答案:D

  • 第14题:

    第四题 阅读以下说明、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就是循环的次数。

  • 第15题:

    在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的值比较后,发现值相等,找到目标。

  • 第16题:

    设有序列{10,12,15,19,22,25,100,130,150,200}画出对上述序列进行折半查找的判定树(以序列中的元素作为树的结点)。为了成功查找到100需要进行多少次元素间的比较?为了查找9,经过多少次元素间的比较可知道查找失败?
    (1)

    (2)4次;3次

  • 第17题:

    对有序数组{5,13,19,21,37,56,64,75,88,92,100}进行二分查找,成功查找元素19的查找长度(比较次数)是()

    • A、1
    • B、2
    • C、3
    • D、4

    正确答案:B

  • 第18题:

    对有18个元素的有序表作二分(折半)查找,则查找A[3]的比较序列的下标为()。

    • A、 1、2、3
    • B、 9、5、2、3
    • C、 9、5、3
    • D、 9、4、2、3

    正确答案:D

  • 第19题:

    若有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

    正确答案:C

  • 第20题:

    单选题
    若有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
    解析: 暂无解析

  • 第21题:

    单选题
    对有18个元素的有序表作二分(折半)查找,则查找A[3]的比较序列的下标为()。
    A

     1、2、3

    B

     9、5、2、3

    C

     9、5、3

    D

     9、4、2、3


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

  • 第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


    正确答案: C
    解析:

  • 第23题:

    填空题
    在有序表A[1..12]中,采用二分查找算法查等于A[12]的元素,所比较的元素下标依次为()。

    正确答案: 6,9,11,12
    解析: 暂无解析