有如下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í)行代碼:
在進入while循環(huán)前i初值是 00,j初值是 88,key值是 55。
第一次循環(huán)執(zhí)行后,m值是 44,b[m]值是 2121,i值是 00,j值是 33。
第二次循環(huán)執(zhí)行后,m值是 11,b[m]值是 88,i值是 00,j值是 00。
第三次循環(huán)執(zhí)行后,m值是 00,b[m]值是 55,i值是 11,j值是 00。
是否找到 是是(選填:是/否),找到了是否立即退出循環(huán) 是是(選填:是/否),總共查找了 33次,執(zhí)行以上代碼退出循環(huán)時,i與j關系的python表達式可以是 i=j+1i=j+1、j=i-1j=i-1。
※假如輸入的值是9,按照提示執(zhí)行代碼:
在進入while循環(huán)前i初值是 00,j初值是 88,key值是 99。
第一次循環(huán)執(zhí)行后,m值是 44,b[m]值是 2121,i值是 00,j值是 33。
第二次循環(huán)執(zhí)行后,m值是 11,b[m]值是 88,i值是 22,j值是 33。
第三次循環(huán)執(zhí)行后,m值是 22,b[m]值是 1111,i值是 22,j值是 11。
是否找到 是是(選填:是/否),是否需要繼續(xù)查找 否否(選填:是/否),總共查找了 33次,執(zhí)行以上代碼退出循環(huán)時,i與j關系的python表達式可以是 i=j+1i=j+1、j=i-1j=i-1。
※假如輸入的值是21,按照提示執(zhí)行代碼:
在進入while循環(huán)前i初值是 00,j初值是 88,key值是 2121。
第一次循環(huán)執(zhí)行后,m值是 44,b[m]值是 2121,i值是 55,j值是 88。
是否找到 否否(選填:是/否),是否需要繼續(xù)查找 是是(選填:是/否)。
第二次循環(huán)執(zhí)行后,m值是 66,b[m]值是 5656,i值是 55,j值是 55。
第三次循環(huán)執(zhí)行后,m值是 55,b[m]值是 2121,i值是 66,j值是 55。
第四次循環(huán)執(zhí)行后,m值是 55,b[m]值是 2121,i值是 66,j值是 55。
是否找到 是是(選填:是/否),找到了是否立即退出循環(huán) 是是(選填:是/否),總共查找了 33次,執(zhí)行以上代碼退出循環(huán)時,i與j關系的python表達式可以是 i=j+1i=j+1、j=i-1j=i-1。
變量i和j有什么特殊含義 循環(huán)結(jié)束時i的值為key的值在列表b中最接近比key值大的數(shù)所在的列標位置,i的值比j大1循環(huán)結(jié)束時i的值為key的值在列表b中最接近比key值大的數(shù)所在的列標位置,i的值比j大1。
【考點】查找算法及其程序?qū)崿F(xiàn).
【答案】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ù)所在的列標位置,i的值比j大1
【解答】
【點評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:0引用:1難度:0.7
相似題
-
1.某對分查找算法的VB程序段如下:
數(shù)組元素a(1)到a(10)的值依次為“12,15,18,20,25,39,47,88,90,99”,經(jīng)過上述代碼查找后,下列表達式正確的是( ?。?/h2>發(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ù)組中,下列說法正確的是( )
發(fā)布:2024/12/20 0:0:1組卷:3引用:1難度:0.7 -
3.有如下對分查找VB程序段:
若數(shù)組元素a(1)~a(10)的值依次為“5,9,13,18,22,27,31,39,40,44”,運行程序后,文本
框Text2中顯示的內(nèi)容為3,則輸入的key值不可能為( )發(fā)布:2024/12/20 20:0:2組卷:3引用:2難度:0.4
把好題分享給你的好友吧~~