码迷,mamicode.com
首页 > 编程语言 > 详细

两个有序数组合并为一个有序数组---python

时间:2020-03-11 23:54:24      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:大小   gear   int   app   print   art   依次   临时   位置   

def merge(a, b):
    """
    合并2个有序数组,默认a,b都是从小到大的有序数组
    """
    # 1.临时变量
    i, j = 0, 0  # 分别标记2个数组的起始位置
    na, nb = len(a), len(b)  # 分别标记2个数组的长度
    temp = []  # 临时存放空间
    # 2.只要2个数组不为空:比较大小a[i]a[j],依次填入temp
    while i <= na - 1 and j <= nb - 1:
        if a[i] <= b[j]:
            temp.append(a[i])
            i += 1
        else:
            temp.append(b[j])
            j += 1
    # 3.判断哪个数组还有剩余
    if i <= na - 1:
        start = i
        end = na - 1
        # 4.将剩余部分添加到temp中
        temp.extend(a[start:end + 1])
    else:
        start = j
        end = nb - 1
        temp.extend(b[start:end + 1])
    # 5.返回合并的新数组
    return temp

if __name__ ==__main__:
    a = [1, 2, 4, 6, 9]
    b = [5, 8, 10, 22]
    mergeArr = merge(a, b)
    print(mergeArr)

 

两个有序数组合并为一个有序数组---python

标签:大小   gear   int   app   print   art   依次   临时   位置   

原文地址:https://www.cnblogs.com/turningli/p/12466213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!