第42323题 单选题
在对长度为 n(n ≥ 1) 的数组进行归并排序的过程中,mergeArray 函数(合并两个有序子数组的操作)被调用的次数是( )。
MAXN = 100005
a = [0] * MAXN
tempArr = [0] * MAXN

def mergeArray(left, mid, right):
    i = left
    j = mid + 1
    k = left
    while i <= mid and j <= right:
        if a[i] <= a[j]:
            tempArr[k] = a[i]
            i += 1
        else:
            tempArr[k] = a[j]
            j += 1
        k += 1
    while i <= mid:
        tempArr[k] = a[i]
        i += 1
        k += 1
    while j <= right:
        tempArr[k] = a[j]
        j += 1
        k += 1
    for p in range(left, right + 1):
        a[p] = tempArr[p]

def mergeSort(left, right):
    if left >= right:
        return
    mid = left + (right - left) // 2
    mergeSort(left, mid)
    mergeSort(mid + 1, right)
    mergeArray(left, mid, right)
{{ option.label }}
子题{{ index + 1 }} {{ child.type_label }}
{{ option.label }}
✓ 正确 ◐ 部分正确 ✗ 错误
程序运行统计
暂无判题统计
知识点:
提交{{ questionInfo.stats ? questionInfo.stats.submit_count : 0 }}次 正确率{{ statsAccuracy }}%
答案解析