itgle.com

以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格。

题目
以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格。

相似考题
更多“以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1,完成程序中的空格。 <img src="//img.examk.com/exam/h/f/JsQtdxHlFBj9LElnivSHx43bi8ofxESr.jpg">”相关问题
  • 第1题:

    从19个记录中查找其中的某个记录,最多进行4次关键字的比较,则采用的查找方法只可能是()。

    A、顺序查找

    B、折半查找

    C、哈希查找

    D、二叉排序树查找


    答案:C

  • 第2题:

    在查找算法中,可用平均查找长度(记为ASL)来衡量一个查找算法的优劣,其定义为:

    此处Pi为表中第i个记录被查找的概率,Ci为查找第i个记录时同关键字比较的次数,n为表中记录数。

    以下叙述中均假定每一个记录被查找的概率相等,即Pi=//n(i=1,2,…,n)。当表中的记录连续存储在一个一维数组中时,可采用顺序查找与折半查找方法(折半查找要求表是按关键字有序排列的)。顺序查找时的ASL为(19),折半查找时的ASL为(20)。记录的关键字有序时,用二叉排序树查找记录,在最坏的情况下,ASL为(21)。当二叉排序树是一棵平衡树时,ASL为(22)。在平衡树上删除一个结点后可以通过旋转使其平衡,最坏的情形下需(23)次旋转。

    A.O(1)

    B.O(log2n)

    C.O(log2n2)

    D.O(nlog2n)

    E.O(n)


    正确答案:E

  • 第3题:

    补充程序Ccon062.C,使程序中的fun()函数用二分法在按从小到大排好序的数组a中查找q,若找到第一个q则返回对应的下标,没找到返回-1。


    Intfun(inta[],intn,/**/intq/**/)
    {mid=/**/(left+right)/2/**/;

  • 第4题:

    在Visual FoxPro中,使用LOCATE ALL<expL>命令按条件查找记录,可以通过下面哪一个函数来判断命令查找到满足条件的记录( )。

    A)通过FOUND函数返回.F.值

    B)通过BOF函数返回.T.值

    C)通过EOF函数返回.T.值

    D)通过EOF函数返回.F.值


    正确答案:D
    LOCATE FOR<expL>命令是按条件定位位置的命令,其中<expL>是查询定位的表达式。该命令执行后将记录指针定位在满足条件的第1条记录上,如果没有满足条件的记录则指针指向文件结束位置。为了判别LOCATE命令是否找到了满足条件的记录,可以使用函数FOUND,如果有满足条件的记录,该函数返回逻辑真(.T.)否则返回逻辑假(.F.)。
    EOF函数用来检测指定表文件中记录指针是否指向文件尾,若是就返回逻辑真(.T.),否则返回逻辑假(.F.)。

  • 第5题:

    ● 关于线性表的顺序查找、折半查找、分块查找方法的叙述中,错误的是 (47) 。

    (47)

    A. 顺序查找的算法非常简单但效率较低

    B. 折半查找法的平均查找长度小,查找速度快

    C. 分块查找的平均长度介于顺序查找和折半查找之间

    D. 分块查找只能用于顺序存贮结构,且要求表中记录是有序的


    正确答案:D

  • 第6题:

    VLOOKUP函数采用()模式时,如果未查找到完全匹配的记录,将返回出错信息


    正确答案:FALSE

  • 第7题:

    数据结构中,在顺序表的查找中,若记录是有序的,可以使用()方式查找效率更高

    • A、顺序查找
    • B、折半查找
    • C、分块查找
    • D、随机查找

    正确答案:B

  • 第8题:

    数据结构与算法里,查找成功意味着查找表中存在要查找的记录。


    正确答案:正确

  • 第9题:

    折半查找又称为(),使用该查找算法的前提条件是,查找表中记录相应的关键字值必须按()。


    正确答案:二分查找;升序或降序排列

  • 第10题:

    填空题
    长度为12的有序表采用顺序存储结构,采用折半查找技术,在等概率情况下,查找成功时的平均查找长度是(),查找失败时的平均查找长度是()。

    正确答案: 37/12,62/13
    解析: 暂无解析

  • 第11题:

    填空题
    折半查找又称为(),使用该查找算法的前提条件是,查找表中记录相应的关键字值必须按()。

    正确答案: 二分查找,升序或降序排列
    解析: 暂无解析

  • 第12题:

    填空题
    VLOOKUP函数采用()模式时,如果未查找到完全匹配的记录,将返回出错信息

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

  • 第13题:

    在Visual FoxPro中,LOCATEALL命令按条件对某个表中的记录进行查找,若查不到满足条件记录,函数EOF()的返回值应是【 】。


    正确答案:.T.
    .T. 解析:LOCATE是按条件定位记录位置的命令,常用命令格式是:
    LOCATE FOR lExpression1
    其中lExpression1是查询或定位的表达式。该命令执行后将记录指针定位在满足条件的第一条记录上,如果没有满足条件的记录则指针指向文件结束位置。
    EOF()是表文件尾测试函数,功能是测试指定文件中的记录指针是否指向文件尾,若表文件尾是指最后一条记录的后面位置,则返回逻辑真.T.。

  • 第14题:

    ● 已知一个线性表(16, 25, 35, 43, 51, 62, 87, 93),采用散列函数H(Key)=Key mod 7将元素散列到表长为9的散列表中。若采用线性探测的开放定址法解决冲突(顺序地探查可用存储单元),则构造的哈希表为 (57) ,在该散列表上进行等概率成功查找的平均查找长度为 (58) (为确定记录在查找表中的位置,需和给定关键字值进行比较的次数的期望值称为查找算法在查找成功时的平均查找长度)。


    正确答案:C,A

  • 第15题:

    阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

    [说明]

    已知r[1...n]是n个记录的递增有序表,用折半查找法查找关键字为k的记录。若查找失败,则输出“failure",函数返回值为0;否则输出“success”,函数返回值为该记录的序号值。

    [C函数]

    int binary search(struct recordtype r[],int n,keytype k)

    { intmid,low=1,hig=n;

    while(low<=hig){

    mid=(1);

    if(k<r[mid].key) (2);

    else if(k==r[mid].key){

    printf("succesS\n");

    (3);

    }

    else (4);

    }

    printf("failure\n");

    (5);

    }


    正确答案:(1) (low+hig)/2 (2) hig=mid-1 (3) returnmid (4) low=mid+1 (5) return 0
    (1) (low+hig)/2 (2) hig=mid-1 (3) returnmid (4) low=mid+1 (5) return 0 解析:折半查找法也就是二分法:初始查找区间的下界为1,上界为len,查找区间的中界为k=(下界+上界)/2。所以(1)应填“(low+hig)/2”。中界对应的元素与要查找的关键字比较。当kr[mid].key时,(2)填“hig=mid-1”;当k==r[mid].key时,(3)填“return mid”;当k>r[mid].key时,(4)填“low=mid+1”。如果low>hig时循环终止时,仍未找到需查找的关键字,那么根据题意返回0,即空(5)填“return 0”。

  • 第16题:

    在 Visual FoxPro 中 , LOCATE ALL 命令按条件对某个表中的记录进行查找 , 若查不到满足条件的记录 ,函数 EOF() 的返回值应是 【 11 】 。


    正确答案:

  • 第17题:

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

  • 第18题:

    在查找算法里,折半查找需要的前提是记录顺序存储并且有序。


    正确答案:正确

  • 第19题:

    对22个记录的有序表作折半查找,当查找失败时,至少需要比较()次关键字。

    • A、3
    • B、4
    • C、5
    • D、6

    正确答案:C

  • 第20题:

    长度为12的有序表采用顺序存储结构,采用折半查找技术,在等概率情况下,查找成功时的平均查找长度是(),查找失败时的平均查找长度是()。


    正确答案:37/12;62/13

  • 第21题:

    折半查找20个记录的有序表,若查找失败,比较关键字的次数()

    • A、最多为6
    • B、最多为5
    • C、最多为4
    • D、最多为3

    正确答案:B

  • 第22题:

    判断题
    数据结构与算法里,查找成功意味着查找表中存在要查找的记录。
    A

    B


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

  • 第23题:

    单选题
    数据结构中,在顺序表的查找中,若记录是有序的,可以使用()方式查找效率更高
    A

    顺序查找

    B

    折半查找

    C

    分块查找

    D

    随机查找


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