题目详情
题目详情:
发布时间:2023-12-11 04:23:35

[简答题]折半查找的前提是什么有一组数5、12、21、28、32、78、96,画出这组数的折半查找判定树,查找78需要比较多少次

更多"折半查找的前提是什么有一组数5、12、21、28、32、78、96,画"的相关试题:

[简答题]画出对表长为13的有序顺序表进行二分查找的判定树.
[单项选择](1)画出对表长为13的有序顺序表进行二分查找的判定树;
(2)已知关键字序列为(12,14,16,21,24,28,35,43,52,67,71,84,99),写出在该序列中二分查找37时所需进行的比较次数。

[单项选择]对长度为10的有序表进行折半查找,设在等概率时查找成功的平均查找长度是()
A. 2.9
B. 3.1
C. 3.4
D. 2.6
[单项选择]

对长度为N的线性表进行查找,若采用顺序查找法,那么在最坏情况下所需要的比较次数为();若采用折半查找法,那么在最坏隋况下所需比较的次数为()。

若采用折半查找法,那么在最坏隋况下所需比较的次数为()。
A. N
B. N+1
C. N/2
D. (N+1)/2
[填空题]对线性表采用折半查找法,该线性表必须 [3]
[填空题]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"); }
[简答题]由N个有序整数组成的数列已放在一维数组中,下列给定程序中,函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low(high),然后用m与中间位置(mid)上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。直到low>hjgh,查找结束。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 10
/********found********/
void fun(int all,int m)

int low=0,high=N-1,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,45,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");

[填空题]由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-1,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);

void main( )
int i,a[N]=(-3,4,7,9,13,45,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");

[填空题]折半查找适用于顺序存储结构的______排列的线性表。
[单项选择]如果我们采用二分查找法查找一个长度为n的有序表,则查找每个元素的平均比较次数( )对应的判定树的高度(假设树高h≥2)。
A. 大于
B. 小于
C. 等于
D. 无法确定

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码