1. 程式人生 > >Lintcode 合併排序 merge sort

Lintcode 合併排序 merge sort

合併兩個排序的整數陣列A和B變成一個新的陣列。
樣例
給出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]

分析
題目中的兩個陣列已經是有序的了,所以只需要依次取出其中的數字新增到新陣列,誰先被取完,將另一個數組中剩下的數字新增到新陣列。


def merge_sort(a,b):
    lenA,lenB=len(a),len(b)
    i,j=0,0
    newARR=[]
    while(i<lenA and j<lenB):
        if(a[i]<b[j]):
            newARR.append(a[i])
            i+=1
else newARR.append(b[j]) j+=1 if i==lenA: for r in range(j,lenB): newARR.append(b[r]) if j==lenB: for r in range(i,lenA): newARR.append(a[r]) return newARR