在对长度为 n(n ≥ 1) 的数组进行归并排序的过程中,mergeArray 函数(合并两个有序子数组的操作)被调用的次数是( )。

wz240568 单选题 共 个子题
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)
A

n-1

B

log n

C

n log n

D

2n

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧