def bucket(lista, n_buckets):
buckets = [[] for _ in range(n_buckets)]
max_elem = max(lista)
for elem in lista:
buckets[(n_buckets*elem)//(max_elem+1)].append(elem)
for bucket in buckets:
bucket = sort_con_un_algorimo_a_scelta(bucket)
lista_ordinata = [elem for b in buckets for elem in b]
return lista_ordinata