有如下python程序段:
key=int(input(“请输入待查数据:“))
b=[5,8,11,21,21,21,56,65,72]
i=0;j=len(b)-1;x=“”
while i<=j:
m=(i+j)//2
if key<b[m]:
j=m-1;x=x+“L“
else:
i=m+1;x=x+“R“
※假如输入的值是5,执行以上代码后x的值为 LLRLLR,i值是 11,j值是 00。
※假如输入的值是9,执行以上代码后x的值为 LRLLRL,i值是 22,j值是 11。
※假如输入的值是11,执行以上代码后x的值为 LRRLLRRL,i值是 33,j值是 22。
※假如输入的值是21,执行以上代码后x的值为 RLRRLR。
变量i和j有什么特殊含义 循环结束时i的值为key的值在列表b中最接近比key值大的数所在的列标位置,j的值比i小1循环结束时i的值为key的值在列表b中最接近比key值大的数所在的列标位置,j的值比i小1。
※假如输入的值是35,执行以上代码后x的值为 RLRRLR,i值是 66,j值是 55。
※假如输入的值是56,执行以上代码后x的值为 RRLRRL,i值是 77,j值是 66。
※假如输入的值是68,执行以上代码后x的值为 RRRLRRRL,i值是 88,j值是 77。
※假如输入的值是72,执行以上代码后x的值为 RRRRRRRR,i值是 99,j值是 88。
【考点】查找算法及其程序实现.
【答案】LLR;1;0;LRL;2;1;LRRL;3;2;RLR;循环结束时i的值为key的值在列表b中最接近比key值大的数所在的列标位置,j的值比i小1;RLR;6;5;RRL;7;6;RRRL;8;7;RRRR;9;8
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/6/27 10:35:59组卷:0引用:1难度:0.3
相似题
-
1.某对分查找算法的VB程序段如下:
数组元素a(1)到a(10)的值依次为“12,15,18,20,25,39,47,88,90,99”,经过上述代码查找后,下列表达式正确的是( )发布:2024/12/20 16:0:2组卷:5引用:2难度:0.5 -
2.某数组d中的数据依次是[8,12,15,28,28,32,36,39],要查找某个元素是否在数组中,下列说法正确的是( )
发布:2024/12/20 0:0:1组卷:3引用:1难度:0.7 -
3.有如下对分查找VB程序段:
若数组元素a(1)~a(10)的值依次为“5,9,13,18,22,27,31,39,40,44”,运行程序后,文本
框Text2中显示的内容为3,则输入的key值不可能为( )发布:2024/12/20 20:0:2组卷:3引用:2难度:0.4