




def 			_SCREAMING_SNAKE_CASE			(							lowercase	:       list     ):


      '''simple docstring'''



      def merge(lowercase	:       list	,							lowercase	:       list     ) -> list:

            def _merge():
                  while left and right:
                        yield (left if left[0] <= right[0] else right).pop(0     )
                  yield from left
                  yield from right

            return list(_merge()     )

      if len(lowercase     ) <= 1:
            return collection
      lowerCamelCase_		     =    len(lowercase     ) // 2
      return merge(merge_sort(collection[:mid]     )	,							merge_sort(collection[mid:]     )     )


if __name__ == "__main__":
 import doctest

 doctest.testmod()
 lowerCamelCase				:		str     =   input("Enter numbers separated by a comma:\n").strip()
 lowerCamelCase				:		Union[str, Any]     =   [int(item) for item in user_input.split(",")]
 print(*merge_sort(unsorted), sep=",")









from collections.abc import Callable

import numpy as np

def 			_SCREAMING_SNAKE_CASE			(							lowercase	:       Callable	,							lowercase	:       float	,							lowercase	:       float	,							lowercase	:       float	,							lowercase	:       float     ):


      '''simple docstring'''



      lowerCamelCase_		     =    int(np.ceil((x_end - xa) / step_size     )     )
      lowerCamelCase_		     =    np.zeros((n + 1,)     )
      lowerCamelCase_		     =    ya
      lowerCamelCase_		     =    xa

      for k in range(lowercase     ):
            lowerCamelCase_		     =    y[k] + step_size * ode_func(lowercase	,							y[k]     )
            lowerCamelCase_		     =    y[k] + (
                (step_size / 2) * (ode_func(lowercase	,							y[k]     ) + ode_func(x + step_size	,							lowercase     ))
            )
            x += step_size

      return y


if __name__ == "__main__":
 import doctest

 doctest.testmod()



