


from __future__ import annotations





def 	_lowerCAmelCase       (    _lowerCAmelCase )						->	list[int]:


						'''simple docstring'''






						if len(_lowerCAmelCase ) == 0:
												return array

						__snake_case		,					__snake_case				=		min(_lowerCAmelCase ), max(_lowerCAmelCase )

						# Compute the variables
						__snake_case				=		_max - _min + 1
						__snake_case		,					__snake_case				=		[0] * holes_range, [0] * holes_range

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

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

    # Returns the sorted array.
						return array


if __name__ == "__main__":
	import doctest

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









from __future__ import annotations





def 	_lowerCAmelCase       (    _lowerCAmelCase )						->	list:


						'''simple docstring'''






						if len(_lowerCAmelCase ) == 0:
												return []
						__snake_case		,					__snake_case				=		min(_lowerCAmelCase ), max(_lowerCAmelCase )
						__snake_case				=		int(max_value - min_value ) + 1
						__snake_case				=		[[] for _ in range(_lowerCAmelCase )]

						for i in my_list:
												buckets[int(i - min_value )].append(_lowerCAmelCase )

						return [v for bucket in buckets for v in sorted(_lowerCAmelCase )]


if __name__ == "__main__":
	from doctest import testmod

	testmod()
	assert bucket_sort([4, 5, 3, 2, 1]) == [1, 2, 3, 4, 5]
	assert bucket_sort([0, 1, -10, 15, 2, -2]) == [-10, -2, 0, 1, 2, 15]





