class Solution:
def sortArray(self, nums: List[int]) -> List[int]:
def merge(nums1, nums2):
if not nums1 and not nums2:
return None
if not nums1:
return nums2
if not nums2:
return nums1
len1 = len(nums1)
len2 = len(nums2)
index1 = 0
index2 = 0
res = []
while index1 <= len1 - 1 and index2 <= len2 - 1:
if nums1[index1] <= nums2[index2]:
res.append(nums1[index1])
index1 += 1
else:
res.append(nums2[index2])
index2 += 1
while index1 <= len1 - 1:
res.append(nums1[index1])
index1 += 1
while index2 <= len2 - 1:
res.append(nums2[index2])
index2 += 1
return res
def mergesort(nums):
length = len(nums)
if length == 0:
return None
if length == 1:
return nums
if length > 1:
return merge(
mergesort(nums[: length // 2]), mergesort(nums[length // 2 :])
)
return mergesort(nums)
标签:mergesort,归并,return,nums,Python,int,排序,nums1,nums2
From: https://www.cnblogs.com/DCFV/p/18416543