Skip to content
Snippets Groups Projects
6.py 607 B
Newer Older
def merge_sort(lnum):
    if len(lnum) > 1:
        return merge(merge_sort(lnum[:len(lnum) // 2]), merge_sort(lnum[len(lnum) // 2:]))
    else:
        return lnum


def merge(nums1, nums2):
    res = []
    while nums1 or nums2:
        if not nums1:
            res.append(nums2[0])
            del nums2[0]
        elif not nums2:
            res.append(nums1[0])
            del nums1[0]
        else:
            if nums1[0] < nums2[0]:
                res.append(nums1[0])
                del nums1[0]
            else:
                res.append(nums2[0])
                del nums2[0]
    return res