class Solution:def sortArray(self, nums: List[int]) -> List[int]:l = 0h = len(nums) - 1#self.mergeSort(l, h, nums)self.quickSort(l, h, nums)return numsdef mergeSort(self, l, h, nums):if l < h:mid = (l + h) // 2self.mergeSort(l, mid, nums)self.mergeSort(mid+1, h, nums)i = lj = mid + 1mergeArray = []while i < mid + 1 and j < h + 1:if nums[i] < nums[j]:mergeArray.append(nums[i])i += 1else:mergeArray.append(nums[j])j += 1while i < mid + 1:mergeArray.append(nums[i])i += 1while j < h + 1:mergeArray.append(nums[j])j += 1#print(mergeArray)#print(nums[l:(h+1)])nums[l:(h+1)] = mergeArraydef quickSort(self, l, h, nums):if l < h:j = self.partition(l, h, nums)#print(j)#print(nums)self.quickSort(l, j - 1, nums)self.quickSort(j+1, h, nums)def partition(self, l, h, nums):if l > h:return Nonepivot = nums[l]i = lj = hwhile i < j:while nums[i] <= pivot and i < h:i += 1while nums[j] > pivot and j >= l:j -= 1if i < j:temp = nums[i]nums[i] = nums[j]nums[j] = tempnums[l] = nums[j]nums[j] = pivotreturn j
