Sort an array using Merge Sort algorithm.
[5,2,3,1] → [1,2,3,5]
# 3. Sorting: Merge Sort
# Problem Statement:
# Sort an array using Merge Sort algorithm.
# Input: [5,2,3,1]
# Output: [1,2,3,5]
# Time Complexity: O(n log n)
def self.merge_sort(arr)
return arr if arr.size <= 1
mid = arr.size / 2
left = merge_sort(arr[0...mid])
right = merge_sort(arr[mid..-1])
merge(left, right)
O(n log n)
O(n)