题库首页 › GESP等级认证(Python) › 题目 25927

在归并排序的合并操作中,如下代码片段可以正确地将两个已排序的子数组 L 和 R 合并回原数组 arr 中。 def merge(arr, left, mid, right): n1 = mid - left + 1 n2 = right - mid L = [0] * n1 R = [0] * n2 for i in range(n1): L[i] = arr[left + i] for j in range(n2): R[j] = arr[mid + 1 + j] i = 0 j = 0 k = left while i < n1 and j < n2: if L[i] <= R[j]: arr[k] = L[i] i += 1 else: arr[k] = R[j] j += 1 k += 1 while i < n1: while j < n2:

A:正确
B:错误

正确答案:正确

答案解析

分析归并排序合并操作中数组划分与元素复制过程;确认左右子数组L和R的长度计算方式;验证L和R是否正确从arr的left到mid和mid+1到right区间赋值;检查i、j、k三个指针的初始化位置;判断while循环中通过比较L[i]和R[j]将较小值写回arr[k]的逻辑是否成立;确认i、j、k在每次赋值后是否正确递增;验证当某一子数组元素处理完毕后,剩余元素是否能正确补全到arr中。

试卷来源:202606 CCF-GESP编程能力等级认证Python五级真题

本卷相关题目

在线做题 同科目题库