关于Python列表的一个程序

img


要求:运用递归完成
如果运用递归不能满足原题的要求则可以不满足

def insertionSort(arr): 
  
    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 -= 1
        arr[j+1] = key 
  
  
arr = [12, 11, 13, 5, 6] 
insertionSort(arr) 
print ("排序后的数组:") 
for i in range(len(arr)): 
    print ("%d" %arr[i])

你把第二个数组用循环append到第一个数组。
然后用插入排序。

你题目的解答代码如下:

def mrege(l1,l2):
    len1 = len(l1)
    len2 = len(l2)
    x = []
    i = 0
    j = 0
    while i<len1 or j<len2:
        if j>=len2 or (i<len1 and l1[i]<l2[j]):
            x.append(l1[i])
            i += 1
        else:
            x.append(l2[j])
            j += 1
    return x

print(mrege([1,4,5],[2,7]))
print(mrege([],[2,3,4]))

img

如有帮助,望采纳!谢谢!