a = [11,13,14,25,26,28,39,48]
key=int(input("key="))
n=len(a)
i=0;j=n-1
flag=False
while i<=j and not flag:
m=(i+j+1)//2
if a[m]==key:
flag=True
if a[m]>key:
j=m-1
else:
i=m+1
若key输入的值是 39, 则运行程序段后,以下变量的值不正确的是 ( )
import random
a = [2,3,5,8,10,10,10,17,19,20]
key = random.randint(1,30)
# 随机生成[1,30]之间的整数
i,j = 0,9
while i <= j:
m = (i + j) // 2
if a[m] > key:
j = m - 1
else:
i = m + 1
print(j)
执行该程序段,下列说法正确的是( )
import random
def find(x, y):
m = (x+y+1)//2
if a[m] == key:
return m
if a[m] > key:
y = m-1
else:
x = m + 1
return find(x, y)
a = [2, 4, 6, 8, 10, 12, 14, 16]
key=random.choice(a) #从序列的元素中随机挑选一个元素
i = 0;j = len(a) - 1
xb = find(i, j)
print(xb, key)
上述程序执行完后,函数find被调用的最多次数是( )
s=input("输入字符串:")
n=len(s)
i,j=0,n- 1
result=""
while i<n//2 and j>=n//2:
if s[i]>s[j]:
result+=s[i]; j-=1
elif s[i]<s[j]:
result+=s[j]; i+=1
else:
i+=1;j-=1
print(result)
执行该程序段,分别输入下列选项中的字符串,输出结果不为“555”的是( )
i=1 : j=6 : k=0
key = Val( Textl.Text)
Do Whilei<= j
k=k+ 1
m= Int((i +j)/2+0.5)
If key = a(m) Then Exit Do
If key< a(m) Then j=m-1 Else i=m+ 1
Loop
文本框Text1中输入27,执行该程序段后,k的值为2,则a(1)到a(6)各元素可能的值是( )
a=[5,14,3,12,6,7,3,9,20,1]
l=min(a);r=max(a)
#min 取列表最小值,max 取列表最大值
maxi=3
while l<=r:
mid=(l+r)//2
cnt=0
for i in a:
if mid<i:
cnt+=1
if cnt<maxi:
r=mid-1
else:
l=mid+1
上述程序段执行结束,下列说法正确的是:( )