测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A22236. 下⾯代码实现了归并排序。下述关于归并排序的说法中,不正确的是( )。def merge(arr, temp, l, mid, r): i = l j = mid + 1 k = l while i <= mid and j <= r: if arr[i] <= arr[j]: temp[k] = arr[i] i += 1 else: temp[k] = arr[j] j += 1 k += 1…

单选题 困难

题目描述

下⾯代码实现了归并排序。下述关于归并排序的说法中,不正确的是(    )。

def merge(arr, temp, l, mid, r):
    i = l
    j = mid + 1
    k = l

    while i <= mid and j <= r:
        if arr[i] <= arr[j]:
            temp[k] = arr[i]
            i += 1
        else:
            temp[k] = arr[j]
            j += 1
        k += 1

    while i <= mid:
        temp[k] = arr[i]
        i += 1
        k += 1

    while j <= r:
        temp[k] = arr[j]
        j += 1
        k += 1

    for p in range(l, r + 1):
        arr[p] = temp[p]

def merge_sort(arr, temp, l, r):
    if l >= r:
        return
    mid = l + (r - l) // 2
    merge_sort(arr, temp, l, mid)
    merge_sort(arr, temp, mid + 1, r)
    merge(arr, temp, l, mid, r)

def merge_sort_wrapper(arr):
    if not arr:
        return []
    temp = [0] * len(arr)
    merge_sort(arr, temp, 0, len(arr) - 1)
    return arr

选项(单选)

上一题 下一题