小明用插入排序算法,编写了如下代码,对列表arr中的数值进行排序, 请问,代码中红色①处,应填写什么代码?( ) arr = [9, 3, 7, 5, 1, 6, 8, 4, 2] for i in range(1, len(arr)): key = arr[i] j = i-1 while j >=0 and key < arr[j] : arr[j+1] = ① j = j - 1 arr[j+1] = key print ("排序后的数组:",arr)
A:arr[i]
B:arr[j-1]
C:arr[i+1]
D:arr[j]
正确答案:D
答案解析
本题为经典的插入排序算法,题中需要补充的代码,就是数值位置互换的代码,所以正确答案是选项D,也就是arr[j]。完整的原始代码如下:
arr = [9, 3, 7, 5, 1, 6, 8, 4, 2]
for i in range(1, len(arr)):
key = arr[i]
j = i-1
while j >=0 and key < arr[j] :
arr[j+1] = arr[j]
j = j - 1
arr[j+1] = key
print ("排序后的数组:",arr)
试卷来源:202403 青少年软件编程等级考试Python三级真题