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