def merge_sort(nums): if len(nums) > 1: mid = len(nums)//2 left = nums[:mid] right = nums[mid:] merge_sort(left) merge_sort(right) i, j, k = 0, 0, 0 while i < len(left) and j < len(right): if left[i] < right[j]: nums[k] = left[i] i += 1 else: nums[k] = right[j] j += 1 k += 1 # finish merging remaining elements 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 nums = [5, 4, 2, 1] res = merge_sort(nums) print(res)