网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

设low和high分别是在有序表中折半查找的指针,如果查找的关键字Key大于low和high的中间值mid所指的关键字,则正确缩小查找区间的是()。

A.high=mid+1

B.high=mid

C.low=mid+1

D.low=mid


参考答案和解析
A
更多 “设low和high分别是在有序表中折半查找的指针,如果查找的关键字Key大于low和high的中间值mid所指的关键字,则正确缩小查找区间的是()。A.high=mid+1B.high=midC.low=mid+1D.low=mid” 相关考题
考题 无论表中的结点是否按关键字进行有序排列,在进行查找操作时都可以使用折半查找。() 此题为判断题(对,错)。

考题 N个有序整数数列已放在一维数组中,给定下列程序中,函数fun()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值:反之,则返回-1。折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。直到low>high,查找结束。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:include <stdio.h>define N 10/*************found*********************/void fun(int a[],int m){ int low--0,high=N-l,mid;while (low<=high){ mid=(low+high)/2;if(m<a[mid])high=mid-1;/*************found*********************/else if(m>=a [mid])low=mid+1;else return(mid);}return(-1);}main (){ int i,a[N]={-3,4,7,9,13,24,67,89,100,180},k,m;printf ("a数组中的数据如下: ");for(i=0;i<N;i++) printf("%d",a[i]);printf ("Enter m: "); scanf ("%d", m);k=fun (a,m);if (k>=0) printf ("m=%d, index=%d\n",m, k);else printf("Not be found!\n");}

考题 对22个记录的有序表作折半查找,当查找失败时,至少需要比较()次关键字。A. 3B. 4C. 5D. 6

考题 折半查找方法要求查找表必须是关键字的有序表,但是对存储结构没有限制。() 此题为判断题(对,错)。

考题 在11个元素的有序表A[1…11)中进行折半查找[L(low+high)/2],查找元素A[11]时,被比较的元素的下标依次是(49)。A.6,8,10,11B.6,9,10,11C.6,7,9,11D.6,8,9,11

考题 折半查找function binsearch(k:keytype):integer;var low,hig,mid:integer;

考题 阅读以下函数说明和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);}

考题 在11个元素的有序表A[1..11]中进行折半查找(|(low+high)/2|),查找元素A[11]时,被比较的元素的下标依次是(44)。A.6,8,10,11B.6,9,10,11C.6,7,9,11D.6,8,9,11

考题 第四题 阅读以下说明、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

考题 散列查找的原理是()。A在待查记录的关键字值与该记录的存储位置之间建立确定的对应关系B按待查记录的关键字有序的顺序方式存储C按关键字值的比较进行查找D基于二分查找的方法

考题 数据结构与算法里,折半查找中,low指向低端的记录,high指向高端的记录,每次计算中间位置mid的公式是()。A、(lowhigh)/2B、(low+high)/2C、(low-high)/2D、low/2+high/2

考题 下面关于折半查找法的叙述中,正确的是()。A、只要线性表中元素按值有序排列,就可以采用折半查找B、只要线性表采用顺序存储结构,就可以采用折半查找C、线性表中元素按值有序排列,并且采用顺序存储结构时才能采用折半查找D、在链表中也可以采用折半查找

考题 线性有序表(a1,a2,a3,,,a10)按关键字从小到大排列,对一个给定的关键字值k,用二分法查找表中关键字与k相等的元素,在查找不成功的情况下,最多需要查找()次。

考题 在有序表(9,10,14,18,23,27,30,32,42)中,用二分法查找关键字值32(成功),需做的关键字比较次数为();查找关键字值35(失败),需做的关键字比较次数为()

考题 具有8个关键字的有序表,二分法查找成功的平均查找长度(ASL成功)()

考题 具有12个关键字的有序表,折半查找的平均查找长度()。A、3.1B、4C、2.5D、5

考题 对22个记录的有序表作折半查找,当查找失败时,至少需要比较()次关键字。A、3B、4C、5D、6

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

考题 完成下列折半插入排序算法。 Void binasort(struct node r[MAXSIZE],int n) {for(i=2;i=n;i++){ r[0]=r[i];low=1;high=i-1; while(low=high){ mid=(low+high)/2; if(r[0].key else low=mid+1 ; } for(j=i-1;j=low;j- -)r[j+1]=r[j] ; r[low]=() ; } }

考题 折半查找20个记录的有序表,若查找失败,比较关键字的次数()A、最多为6B、最多为5C、最多为4D、最多为3

考题 单选题数据结构与算法里,折半查找中,low指向低端的记录,high指向高端的记录,每次计算中间位置mid的公式是()。A (lowhigh)/2B (low+high)/2C (low-high)/2D low/2+high/2

考题 单选题具有12个关键字的有序表,折半查找的平均查找长度()。A 3.1B 4C 2.5D 5

考题 填空题线性有序表(a1,a2,a3,,,a10)按关键字从小到大排列,对一个给定的关键字值k,用二分法查找表中关键字与k相等的元素,在查找不成功的情况下,最多需要查找()次。

考题 单选题散列查找的原理是()。A 在待查记录的关键字值与该记录的存储位置之间建立确定的对应关系B 按待查记录的关键字有序的顺序方式存储C 按关键字值的比较进行查找D 基于二分查找的方法

考题 填空题在有序表(9,10,14,18,23,27,30,32,42)中,用二分法查找关键字值32(成功),需做的关键字比较次数为();查找关键字值35(失败),需做的关键字比较次数为()

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

考题 单选题下面关于折半查找法的叙述中,正确的是()。A 只要线性表中元素按值有序排列,就可以采用折半查找B 只要线性表采用顺序存储结构,就可以采用折半查找C 线性表中元素按值有序排列,并且采用顺序存储结构时才能采用折半查找D 在链表中也可以采用折半查找

考题 单选题具有12个关键字的有序表,折半查找的平均查找长度为()A 3.1B 4C 2.5D 5