



from __future__ import annotations


def 		_UpperCAmelCase				(      snake_case	,						snake_case	,						snake_case			):





					"""simple docstring"""

					if len(snake_case			) == 0:
										raise ValueError("""find_max() arg is an empty sequence"""			)
					if (
					    left >= len(snake_case			)
					    or left < -len(snake_case			)
					    or right >= len(snake_case			)
					    or right < -len(snake_case			)
					):
										raise IndexError("""list index out of range"""			)
					if left == right:
										return nums[left]
					_lowerCAmelCase						=    (left + right) >> 1  # the middle
					_lowerCAmelCase						=    find_max(snake_case	,						snake_case	,						snake_case			)  # find max in range[left, mid]
					_lowerCAmelCase						=    find_max(snake_case	,						mid + 1	,						snake_case			)  # find max in range[mid + 1, right]

					return left_max if left_max >= right_max else right_max


if __name__ == "__main__":
	import doctest

	doctest.testmod(verbose=True)









from __future__ import annotations




def 			__magic_name__				( A		:					list   ):






			'''simple docstring'''







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

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

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


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]






