input: Write a python function to sort an array in descending order using merge sort.
  assert merge_sort([3, 7, 9, 1, 2, 8]) == [9, 8, 7, 3, 2, 1]
  assert merge_sort([10, 3, 15, 7, 8, 23, 74, 18]) == [74, 23, 18, 15, 10, 8, 7, 3]
  assert merge_sort([4, 1, 3, 2]) == [4, 3, 2, 1]
output: def merge_sort(arr):
      if len(arr) <= 1:
          return arr
  
      def merge(left, right):
          result = []
          while left and right:
              if left[0] >= right[0]:
                  result.append(left.pop(0))
              else:
                  result.append(right.pop(0))
          result.extend(left or right)
          return result
  
      mid = len(arr) // 2
      left = merge_sort(arr[:mid])
      right = merge_sort(arr[mid:])
      
      return merge(left, right)