






'''simple docstring'''

from __future__ import annotations
def     __lowercase  (_lowercase     )   ->     list[int]:


     """simple docstring"""
     if len(_lowercase     ) == 0:
          return array

     __lowerCamelCase						:       Tuple				   =				min(_lowercase     ), max(_lowercase     )

     # Compute the variables
     __lowerCamelCase						:       Union[str, Any]				   =				_max - _min + 1
     __lowerCamelCase						:       Any				   =				[0] * holes_range, [0] * holes_range

     # Make the sorting.
     for i in array:
          __lowerCamelCase						:       Optional[int]				   =				i - _min
          __lowerCamelCase						:       int				   =				i
          holes_repeat[index] += 1

     # Makes the array back by replacing the numbers.
     __lowerCamelCase						:       str				   =				0
     for i in range(_lowercase     ):
          while holes_repeat[i] > 0:
               __lowerCamelCase						:       List[str]				   =				holes[i]
               index += 1
               holes_repeat[i] -= 1

    # Returns the sorted array.
     return array


if __name__ == "__main__":
   import doctest

   doctest.testmod()
   UpperCAmelCase__						:List[Any]          =    input("""Enter numbers separated by comma:\n""")
   UpperCAmelCase__						:str          =    [int(x) for x in user_input.split(""",""")]
   print(pigeon_sort(unsorted))











'''simple docstring'''

from __future__ import annotations

import typing
from collections.abc import Iterable

import numpy as np

UpperCAmelCase__						:List[str]          =			typing.Union[Iterable[float], Iterable[int], np.ndarray]  # noqa: UP007
UpperCAmelCase__						:Optional[int]          =			typing.Union[np.floataa, int, float]  # noqa: UP007
def     __lowercase  (_lowercase,						_lowercase     )   ->     VectorOut:


     """simple docstring"""
     return np.sqrt(np.sum((np.asarray(_lowercase     ) - np.asarray(_lowercase     )) ** 2     )     )
def     __lowercase  (_lowercase,						_lowercase     )   ->     VectorOut:


     """simple docstring"""
     return sum((va - va) ** 2 for va, va in zip(_lowercase,						_lowercase     )     ) ** (1 / 2)


if __name__ == "__main__":
   def     __lowercase  ()   ->     None:


        """simple docstring"""
        from timeit import timeit

        print("""Without Numpy"""     )
        print(
            timeit(
                """euclidean_distance_no_np([1, 2, 3], [4, 5, 6])""",						number=10_000,						globals=globals(),						)     )
        print("""With Numpy"""     )
        print(
            timeit(
                """euclidean_distance([1, 2, 3], [4, 5, 6])""",						number=10_000,						globals=globals(),						)     )
   benchmark()



