C++折半查找 求源代码练习3 折半查找。  查找是计算机应用的重要方面之一。排序是为了便于查找,提高查找的速度。如,设

抱着苦涩去幸福2022-10-04 11:39:541条回答

C++折半查找 求源代码
练习3 折半查找。
  查找是计算机应用的重要方面之一。排序是为了便于查找,提高查找的速度。如,设要从n个数中去查找x是否存在,最原始的办法就是从头到尾逐个去找,这种查找称为顺序查找,它是无序数据查找的有效方法,当被查找的元素为15个时,循环的次数最多为14次。但对一个已经排好序的数列来说,它就是一种效率最低的算法,一般采用折半查找法,下面我们就来讨论它的算法。
           
  假定有以下15个整数:
12 15 17 24 28 32 45 67 89 145 167 178 211 235 269

待查找的数放在x中,折半查找将按图示的方式进行:
先找中间的67去比,
若相等,则找到了;
若小于67则到左边分支去找,
若大于67则到右边分支去找。
同样方法一直查找到没有分支可查找为止。显而易见,这种查找方法最多只需查找四次就能判断出找得到还是找不到。因此这种查找方法优于顺序查找方法。
折半查找的算法如下:
  首先需要设三个指示器top、bot、mid,分别指向查找范围的顶部、 底部和中间位置。假定有15个元素,则一开始top=1、bot=15、mid=(top+bot) div 2,这时一定bot大于top,接着进行以下判断:
  ①如果x=a[mid],则设查到标志为true,打印的有关信息。
  ②否则若x  ③如果x>a[mid],则下一步查找范围应该在mid+1到bot之间,改变top使之等于mid+1。
重复以上过程直到已经打到为止。
请同学们实现程序的编码。
样例:
Please enter 15 integer number:
12 15 17 24 28 32 45 67 89 145 167 178 211 235 269
Input x to look for: 28
Find 28 , it postion is 5

已提交,审核后显示!提交回复

共1条回复
我的心醉了无痕 共回答了21个问题 | 采纳率90.5%
#include
int main()
{
int i,x;
int top=1,bot=15,mid;
int str[15];
printf("Please enter 15 integer number:n");
for(i=0;i
1年前

相关推荐

一位顾客到商店买鞋,他仅知道自己的老鞋码是43码,而不知道自己应穿多大的新鞋号,他记得老鞋码加上一个数后折半计算即为新鞋
一位顾客到商店买鞋,他仅知道自己的老鞋码是43码,而不知道自己应穿多大的新鞋号,他记得老鞋码加上一个数后折半计算即为新鞋号,并且知道儿子穿鞋的老鞋码是40码,新鞋号是25号.请你帮助这位顾客计算一下他的新鞋号是多少号?
落花2朵1年前1
ben2father 共回答了14个问题 | 采纳率78.6%
解题思路:设应加上的数为x,从而根据老鞋码加上一个数后折半计算即为新鞋号可列出方程,解出即可.

设应加上的数为x,
由题意得:[40+x/2]=25,
解得:x=10.
∴[43+10/2]=26.5.
答:他的新鞋号是26.5.

点评:
本题考点: 一元一次方程的应用.

考点点评: 本题考查一元一次方程的应用,难度不大,关键是根据题中的等量关系得出方程,从而解得答案.

急 会的来(1)(1)张阿姨的新房面积是多少平方米?(阳台面积折半算,即1㎡算0.5㎡)(2)这套房子的价格是每平方米3
急 会的来

(1)(1)张阿姨的新房面积是多少平方米?(阳台面积折半算,即1㎡算0.5㎡)
(2)这套房子的价格是每平方米3500元,张阿姨在购房时首付了94950元,余下的申请银行贷款,张阿姨要向银行贷款多少元?
(3)如果要给两间卧室铺上木地板,需要购置多少平方米的木地板?
(4)如果选用规格为30㎝×30㎝的地砖铺卫生间,一共需要多少元?(地砖是个正方形9元1块)
(5)张阿姨的新房层高2.85米,要在两间卧室靠床的墙面贴上墙纸,如果每平方米的墙纸的价格是150元,那么贴墙纸一共需要多少元?
Oo天山莲花oO1年前1
喜欢聊天8 共回答了14个问题 | 采纳率85.7%
张阿姨的新房面积 除去阳台 的面积(2.4+4.8)(3.3+4)=7.2*7.3=52.56 m²
总面积 =52.56 m²+3.14=55.7m²
有位顾客到商店购鞋,他仅知道自己鞋子的老尺码是43码,而不知道老尺码对应的新鞋号,不过幸好他还记得老尺码加上一个数后折半
有位顾客到商店购鞋,他仅知道自己鞋子的老尺码是43码,而不知道老尺码对应的新鞋号,不过幸好他还记得老尺码加上一个数后折半计算即为新鞋号.由于他儿子鞋子的新老尺码都是整数容易记住,因而他知道儿子鞋子的老尺码为40码,新鞋号是25号.现在请你帮助这位顾客计算一下他的新鞋号是几号?
南太平洋的星空1年前1
flanny66 共回答了26个问题 | 采纳率80.8%
解题思路:设出所加上的一个数为x,由他儿子的老尺码和新鞋号列方程解得x,再进一步把他自己的老尺码代入计算即可解决问题.

设所加上的一个数为x,由题意得,
[1/2]×(40+x)=25,
解得x=10,
所以这位顾客他的新鞋号为[1/2]×(43+10)=26.5.
答:这位顾客他的新鞋号是26.5号.

点评:
本题考点: 一元一次方程的应用.

考点点评: 此题主要考查了一元一次方程的应用,关键是掌握数量关系:(老尺码+一个数)×[1/2]=新鞋号列方程解决实际问题.

手表短针指向太阳辨别方向2:40或其他不是整点的时间那时数折半的时数选择什么,时数折半这种方法在南北半
手表短针指向太阳辨别方向2:40或其他不是整点的时间那时数折半的时数选择什么,时数折半这种方法在南北半
时数折半这种方法在南北半都使用吗
sbgdfhw1年前1
glorych 共回答了21个问题 | 采纳率85.7%
将手表放平,以时针所指时数(每日24小时计时制)折半的位置对准太阳,“12”所指的方向就是北方.如在当地时间上午9时,应以折半的位置“4”和“5”之间对准太阳;下午2时(14时)40分,应以7时20分对准太阳.为便于判定,可在时数折半的位置垂直竖立一细棍或细针,使其阴影通过表盘中心.判定时,应以当地时间为准.
注意:此方法在北纬23度30分以南地区,夏季太阳垂直照射,不便使用.(即赤道及南半球地区不能使用
【讨论】这道题怎么求折半查找的平均查找长度?
【讨论】这道题怎么求折半查找的平均查找长度?
在顺序存储的线性表[0...29]上进行顺序折半查找的平均查找长度为()?A.4 B.62/15 C.64/15 D.[]
fengjingyu20081年前1
咖喱茄子 共回答了13个问题 | 采纳率69.2%
折半查找的算法你知道吗?根节点就是折半查找比较的第一个节点(1+29)/2=15号元素左子树根节点就是1-14号元素中间的那个,右子树根节点16-29中间的那个,以此类推 查看原帖
一位顾客到商店买鞋,他仅知道自己的老鞋码是43码,而不知道自己应穿多大的新鞋号,他记得老鞋码加上一个数后折半计算即为新鞋
一位顾客到商店买鞋,他仅知道自己的老鞋码是43码,而不知道自己应穿多大的新鞋号,他记得老鞋码加上一个数后折半计算即为新鞋号,并且知道儿子穿鞋的老鞋码是40码,新鞋号是25号.请你帮助这位顾客计算一下他的新鞋号是多少号?
zjhwdqzjb1年前8
leo902978 共回答了16个问题 | 采纳率100%
解题思路:设应加上的数为x,从而根据老鞋码加上一个数后折半计算即为新鞋号可列出方程,解出即可.

设应加上的数为x,
由题意得:[40+x/2]=25,
解得:x=10.
∴[43+10/2]=26.5.
答:他的新鞋号是26.5.

点评:
本题考点: 一元一次方程的应用.

考点点评: 本题考查一元一次方程的应用,难度不大,关键是根据题中的等量关系得出方程,从而解得答案.

用折半检索方式查找一个长度15的有序表,平均查找长度是多少?
金口不常开1年前1
豪格干儿 共回答了18个问题 | 采纳率88.9%
需要查找1次的排序为:第8
需要查找1次的排序为:第4、12
需要查找1次的排序为:第2、6、10、14
需要查找1次的排序为:第1、3、5、7、9、11、13、15
平均查找长度:(1*1+2*2+4*3+8*4)15 = 49/15
数据结构查找技术假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的节点数为1;比较两次查找成功的结点数为(
数据结构查找技术
假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的节点数为1;比较两次查找成功的结点数为( ),比较四次查找成功的结点数为( );平均查找长度为( ).
麦肯光华1年前1
在在旭 共回答了16个问题 | 采纳率100%
二次为2个
四次的为8个
平均查找长度为(1x1+2x2+3x4+4x8+5x5)/20=74/20
先构造长度为20的折半查找判定树,其他的就OK了,判定树如下
10
/
5 15
/ /
2 7 12 18
/ / / /
1 3 6 8 11 13 16 19

4 9 14 17 20
斜二测画法一定要使折半的那条线段平行于y轴吗?
liuliangzi1年前1
坚持aa 共回答了13个问题 | 采纳率100%
正确的说法应该是:平行于y轴的线段依然平行于y‘ 轴,且长度是原来的一半.
斜二测画法可详见百度百科:
英语翻译SF-36量表折半信度系数是0.71;总的Cronbach’s α系数为0.68,其中最小值0.13,最大值0.
英语翻译
SF-36量表折半信度系数是0.71;总的Cronbach’s α系数为0.68,其中最小值0.13,最大值0.86;所有维度的集合效度定标试验成功率为88.6%,区分效度定标试验成功率除去PF维度为95.0%外,其余各维度均为100%;因子分析产生的两个公因子,分别代表生理健康和心理健康,累积方差贡献率为60.0%.
永远的禾阳1年前3
kuang0123456 共回答了18个问题 | 采纳率83.3%
The SF-36 meter reduce by half letter coefficient is 0.71; The total Cronbach's Alpha coefficient is 0.68, minimum value 0.13, maximum value 0.86; All dimension's set validity calibration experiment success ratio is 88.6%, the discrimination validity calibration experiment success ratio except the PF dimension is outside 95.0%, other various dimensions are 100%; The factorial analysis produces two common factors, respectively on behalf of the physiological health and the psychologically healthy, the accumulation variance technical progress factor are 60.0%.
猜字谜 快内容如下相思日久留片心竹子折半必人为白去一直心等勺目中偷走心一片生死为了等一下直下两点忘情水身上立下十条心故约
猜字谜 快
内容如下
相思日久留片心
竹子折半必人为
白去一直心等勺
目中偷走心一片
生死为了等一下
直下两点忘情水
身上立下十条心
故约无边寻芳草
根据这八句话踩八个字
让我护航1年前1
骨朵儿呀 共回答了18个问题 | 采纳率94.4%
相思日久留片心 想
竹子折半必人为 你
白去一直心等勺 的
目中偷走一片心 日
生死为了等一下 子
直下两点望情水 真
身上立下十条心 辛
故约无边寻芳草 苦
在顺序表(8,11,15,19,25,26,30,33,42,48,50)中,用二分(折半)法查找关键码值20,
在顺序表(8,11,15,19,25,26,30,33,42,48,50)中,用二分(折半)法查找关键码值20,
需做的关键码比较次数为多少?
海衣0011年前1
keke0730 共回答了14个问题 | 采纳率85.7%
首先要确定2分的时候是向上取整,还是直接截取整数部分就是3/2 是取 1 还是取 2 ,这个定下来就按照这个规则做,比如我们规定是取1 ,
1.11 /2 = 5,分成两部分 8 - 19 和26 - 50,那么20 和25比较,应该取左边序列,
2.6/2 = 3,8-11 和 19 20 和 15 比,就应该取右边
3.19 和20 没有了,就查不到了
一次类推,20并不在序列内,你要注意终结条件
一道数学题.一位顾客到商店买鞋,他仅知道自己的老尺码是43码,而不知道自己应穿多大的新鞋号,他记得老尺码加上一个数后折半
一道数学题.
一位顾客到商店买鞋,他仅知道自己的老尺码是43码,而不知道自己应穿多大的新鞋号,他记得老尺码加上一个数后折半计算即为新鞋号,并且知道儿子穿鞋的老尺码是36码,新鞋号是23号,请你帮助这位顾客计算一下他的新鞋号是多少.
用方程解,好的回分啊
看好数据啊,跟其他人提问的数据不一样啊,都没看的,
jy6089081年前2
violetsullivan 共回答了19个问题 | 采纳率73.7%
设加的数为X
(36+X)/2=23
X=10
他的新鞋号是(43+10)/2=26.5
数据结构查找技术假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的节点数为1;比较两次查找成功的结点数为(
数据结构查找技术
假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的节点数为1;比较两次查找成功的结点数为( ),比较四次查找成功的结点数为( );平均查找长度为( ).
yoyosee1年前1
asa778866 共回答了16个问题 | 采纳率100%
二次为2个
四次的为8个
平均查找长度为(1x1+2x2+3x4+4x8+5x5)/20=74/20
先构造长度为20的折半查找判定树,其他的就OK了,判定树如下
10
/
5 15
/ /
2 7 12 18
/ / / /
1 3 6 8 11 13 16 19

4 9 14 17 20
一位顾客到商店买鞋,他仅知道自己的老鞋码是43码,而不知道自己应穿多大的新鞋号,他记得老鞋码加上一个数后折半计算即为新鞋
一位顾客到商店买鞋,他仅知道自己的老鞋码是43码,而不知道自己应穿多大的新鞋号,他记得老鞋码加上一个数后折半计算即为新鞋号,并且知道儿子穿鞋的老鞋码是40码,新鞋号是25号.请你帮助这位顾客计算一下他的新鞋号是多少号?
狂爱睡觉1年前1
pjlittlebird 共回答了17个问题 | 采纳率94.1%
解题思路:设应加上的数为x,从而根据老鞋码加上一个数后折半计算即为新鞋号可列出方程,解出即可.

设应加上的数为x,
由题意得:[40+x/2]=25,
解得:x=10.
∴[43+10/2]=26.5.
答:他的新鞋号是26.5.

点评:
本题考点: 一元一次方程的应用.

考点点评: 本题考查一元一次方程的应用,难度不大,关键是根据题中的等量关系得出方程,从而解得答案.

关于折半查找当元素有序时,最多、最少及平均比较次数;当元素无序时,最多、最少比较次数
bryanfan1年前1
qbky 共回答了19个问题 | 采纳率84.2%
元素有序时折半查找:最多log2(n+1)次,最少1次,平均值为(n+1)/n log2(n+1) - 1
元素无序只能顺序查找:最多n次,最少1次
一位顾客到商店买鞋,他仅知道自己的老鞋码是43码,而不知道自己应穿多大的新鞋号,他记得老鞋码加上一个数后折半计算即为新鞋
一位顾客到商店买鞋,他仅知道自己的老鞋码是43码,而不知道自己应穿多大的新鞋号,他记得老鞋码加上一个数后折半计算即为新鞋号,并且知道儿子穿鞋的老鞋码是40码,新鞋号是25号.请你帮助这位顾客计算一下他的新鞋号是多少号?
enko20081年前4
longyuyuyu 共回答了24个问题 | 采纳率83.3%
解题思路:设应加上的数为x,从而根据老鞋码加上一个数后折半计算即为新鞋号可列出方程,解出即可.

设应加上的数为x,
由题意得:[40+x/2]=25,
解得:x=10.
∴[43+10/2]=26.5.
答:他的新鞋号是26.5.

点评:
本题考点: 一元一次方程的应用.

考点点评: 本题考查一元一次方程的应用,难度不大,关键是根据题中的等量关系得出方程,从而解得答案.

折半查找的时间复杂度和平均查找长度有什么区别?
yukiwatermelon1年前1
OMG215 共回答了29个问题 | 采纳率89.7%
时间复杂度是省去了系数的 平均查找长度则是有系数的
比如单链表顺序查找的平均查找长度是(1+n)/2,但是时间复杂度是o(n)
折半查找的时间复杂度是o(log2(n)) 平均查找长度不知道.