Merge Sort Template

class Solution(object):
    def sortArray(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        if len(nums) > 1:
            mid = len(nums)//2
            left = self.sortArray(nums[:mid])
            right = self.sortArray(nums[mid:])
            
            i = j = 0
            k = 0
            while i < len(left) and j < len(right):
                if left[i] < right[j]:
                    nums[k] = left[i]
                    i+=1
                    k+=1
                else:
                    nums[k] = right[j]
                    j+=1
                    k+=1
            
            while i < len(left):
                nums[k] = left[i]
                i+=1
                k+=1
            
            while j < len(right):
                nums[k] = right[j]
                j+=1
                k+=1
        return nums

Last updated

Was this helpful?