Sort Array
- 1 min read
- Arra
- LC-Medium
Solution
| Time | Space | Explanation |
|---|
O() | O() | |
def sortArray(self, nums: List[int]) -> List[int]:
def merge(l, r):
mid = (l + r) // 2
left = nums[l : mid + 1]
right = nums[mid + 1: r + 1]
i, j, k = l, 0, 0
while j < len(left) and k < len(right):
if left[j] <= right[k]:
nums[i] = left[j]
j += 1
else:
nums[i] = right[k]
k += 1
i += 1
while j < len(left):
nums[i] = left[j]
i += 1
j += 1
while k < len(right):
nums[i] = right[k]
i += 1
k += 1
def merge_sort(l, r):
if l == r:
return nums
mid = (l + r) // 2
merge_sort(l, mid)
merge_sort(mid + 1, r)
merge(l, r)
return nums
return merge_sort(0, len(nums) - 1)