还剩1页未读,继续阅读
文本内容:
四
1.在已排序的数组d数组元素d
[0]2d口]三…d[n-2]Nd[n-1]中查找键值为key的数其二分查找的程序如下i=0j=n-1whilei=j:m=i+j//2ifd[m]==key:b=mbreakif:#到左边去找j=m-1else:#到右边去找i=m+1则程序中画线处的内容为keyd[m]keyd[m]key!=d[m]key==d[m].阅读如下程序a=
[8172430364055586166]key=30i=0j=9whilei=j:m=inti+j/2+
0.5ifkey==a[m]:breakifkeya[m]:j=m-1else:=m+1printa[m]程序运行后,输出的内容为A.4024B.402436C.3624D.
361724.某程序如下importrandoma=
[24353841456978]key=random.randintlz100i=0j=6s=whilei=j:m=i+j//2ifkey==a[m]:s=s+Mbreakifkeya[m]:j=m-1s=s+Lelse:=m+1s=s+Rprints执行该程序,显示的内容可能凰A.RLB.LMRC.RLRD.LRLM.某对分查找算法如下d=
[71218253958617286]key=intinput请输入要查找的整数:i=0j=8n=0whilei=j:n=n+1m=i+j//2ifkey==d[m]:break#退出循环ifkeyd[m]:j=m-1else:i=m+1printn若该程序段运行结束后n的值为2贝Ikey的后是A.39B.18或61C.18或72D.12或
615.数组a中存储的是左右交普上升的n个正整数,如下表所示依据对分查找思想,设计一个在数组a中查找数据key的程序,实现该功能的python程序如下,但加框处代码有错,请改正a=
[32538553112]key=int(input,请输入要查找的整数))n=len(a)=0j=n//2flag=Falsewhileijandnotflag:m=(i+j)〃2ifkey==a[m]:flag=Trueifkeya[m]:j=m-1else:i=m+1ifnotflagandj=0:m=n-jifkey==a[m]:flag=Trueifflag:print(下标为:,m)else:print(找不至『)
6.试用二分查找算法的思想求非负整数x的整数平方根(即平方根舍去小数部分)a
[0]a[l]a
[2]••••••a[-3]a[-2]a[-l]32538553112。