Python 实现归并排序

# Merges two sorted lists to create and return a new sorted list
def mergeSortedLists(listA, listB):
    # Create the new list and initialize the list markers
    newList = list()
    a = 0
    b = 0

    # Merge the two lists together until one is empty
    while a < len(listA) and b < len(listB):
        if listA[a] < listB[b]:
            newList.append(listA[a])
            a += 1
        else:
            newList.append(listB[b])
            b += 1

    # If listA contains more items, append them to newList
    while a < len(listA):
        newList.append(listA[a])
        a += 1

    # Or if listB contains more items, append them to newList
    while b < len(listB):
        newList.append(listB[b])
        b += 1
    
    return newList

In [2]: listA = [ 2, 8, 15, 23, 37 ]

In [3]: listB = [ 4, 6, 15, 20 ]

In [4]: newList = mergeSortedLists( listA, listB )

In [5]: print( newList )
[2, 4, 6, 8, 15, 15, 20, 23, 37]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值