試卷征集
加入會員
操作視頻

有如下python程序段:
key=int(input(“請輸入待查數(shù)據(jù):“))
b=[5,8,11,21,21,21,56,65,72]
i=0;j=len(b)-1
while i<=j:
m=(i+j)//2
if  key<=b[m]:
j=m-1
else:
i=m+1
※假如輸入的值是5,按照提示執(zhí)行代碼:
在進(jìn)入while循環(huán)前i初值是
0
0
,j初值是
8
8
,key值是
5
5
。
第一次循環(huán)執(zhí)行后,m值是
4
4
,b[m]值是
21
21
,i值是
0
0
,j值是
3
3

第二次循環(huán)執(zhí)行后,m值是
1
1
,b[m]值是
8
8
,i值是
0
0
,j值是
0
0
。
第三次循環(huán)執(zhí)行后,m值是
0
0
,b[m]值是
5
5
,i值是
1
1
,j值是
0
0
。
是否找到
(選填:是/否),找到了是否立即退出循環(huán)
(選填:是/否),總共查找了
3
3
次,執(zhí)行以上代碼退出循環(huán)時,i與j關(guān)系的python表達(dá)式可以是
i=j+1
i=j+1
、
j=i-1
j=i-1
。
※假如輸入的值是9,按照提示執(zhí)行代碼:
在進(jìn)入while循環(huán)前i初值是
0
0
,j初值是
8
8
,key值是
9
9
。
第一次循環(huán)執(zhí)行后,m值是
4
4
,b[m]值是
21
21
,i值是
0
0
,j值是
3
3
。
第二次循環(huán)執(zhí)行后,m值是
1
1
,b[m]值是
8
8
,i值是
2
2
,j值是
3
3

第三次循環(huán)執(zhí)行后,m值是
2
2
,b[m]值是
11
11
,i值是
2
2
,j值是
1
1
。
是否找到
(選填:是/否),是否需要繼續(xù)查找
(選填:是/否),總共查找了
3
3
次,執(zhí)行以上代碼退出循環(huán)時,i與j關(guān)系的python表達(dá)式可以是
i=j+1
i=j+1
、
j=i-1
j=i-1
。
※假如輸入的值是21,按照提示執(zhí)行代碼:
在進(jìn)入while循環(huán)前i初值是
0
0
,j初值是
8
8
,key值是
21
21
。
第一次循環(huán)執(zhí)行后,m值是
4
4
,b[m]值是
21
21
,i值是
5
5
,j值是
8
8
。
是否找到
(選填:是/否),是否需要繼續(xù)查找
(選填:是/否)。
第二次循環(huán)執(zhí)行后,m值是
6
6
,b[m]值是
56
56
,i值是
5
5
,j值是
5
5
。
第三次循環(huán)執(zhí)行后,m值是
5
5
,b[m]值是
21
21
,i值是
6
6
,j值是
5
5

第四次循環(huán)執(zhí)行后,m值是
5
5
,b[m]值是
21
21
,i值是
6
6
,j值是
5
5
。
是否找到
(選填:是/否),找到了是否立即退出循環(huán)
(選填:是/否),總共查找了
3
3
次,執(zhí)行以上代碼退出循環(huán)時,i與j關(guān)系的python表達(dá)式可以是
i=j+1
i=j+1
、
j=i-1
j=i-1
。
變量i和j有什么特殊含義
循環(huán)結(jié)束時i的值為key的值在列表b中最接近比key值大的數(shù)所在的列標(biāo)位置,i的值比j大1
循環(huán)結(jié)束時i的值為key的值在列表b中最接近比key值大的數(shù)所在的列標(biāo)位置,i的值比j大1
。

【答案】0;8;5;4;21;0;3;1;8;0;0;0;5;1;0;是;是;3;i=j+1;j=i-1;0;8;9;4;21;0;3;1;8;2;3;2;11;2;1;是;否;3;i=j+1;j=i-1;0;8;21;4;21;5;8;否;是;6;56;5;5;5;21;6;5;5;21;6;5;是;是;3;i=j+1;j=i-1;循環(huán)結(jié)束時i的值為key的值在列表b中最接近比key值大的數(shù)所在的列標(biāo)位置,i的值比j大1
【解答】
【點(diǎn)評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:0引用:1難度:0.7
相似題
  • 1.某對分查找算法的VB程序段如下:
    菁優(yōu)網(wǎng)
    數(shù)組元素a(1)到a(10)的值依次為“12,15,18,20,25,39,47,88,90,99”,經(jīng)過上述代碼查找后,下列表達(dá)式正確的是(  )

    發(fā)布:2024/12/20 16:0:2組卷:5引用:2難度:0.5
  • 2.某數(shù)組d中的數(shù)據(jù)依次是[8,12,15,28,28,32,36,39],要查找某個元素是否在數(shù)組中,下列說法正確的是( ?。?/h2>

    發(fā)布:2024/12/20 0:0:1組卷:3引用:1難度:0.7
  • 3.有如下對分查找VB程序段:
    菁優(yōu)網(wǎng)
    若數(shù)組元素a(1)~a(10)的值依次為“5,9,13,18,22,27,31,39,40,44”,運(yùn)行程序后,文本
    框Text2中顯示的內(nèi)容為3,則輸入的key值不可能為( ?。?/h2>

    發(fā)布:2024/12/20 20:0:2組卷:3引用:2難度:0.4
小程序二維碼
把好題分享給你的好友吧~~
APP開發(fā)者:深圳市菁優(yōu)智慧教育股份有限公司| 應(yīng)用名稱:菁優(yōu)網(wǎng) | 應(yīng)用版本:5.0.7 |隱私協(xié)議|第三方SDK|用戶服務(wù)條款
本網(wǎng)部分資源來源于會員上傳,除本網(wǎng)組織的資源外,版權(quán)歸原作者所有,如有侵犯版權(quán),請立刻和本網(wǎng)聯(lián)系并提供證據(jù),本網(wǎng)將在三個工作日內(nèi)改正