Ordenamiento bucket sort o bin sort


El ordenamiento por casilleros (bucket sort o bin sort, en inglés) es un algoritmo de ordenamiento que distribuye todos los elementos a ordenar entre un número finito de casilleros. Cada casillero sólo puede contener los elementos que cumplan unas determinadas condiciones. En el ejemplo esas condiciones son intervalos de números. Las condiciones deben ser excluyentes entre sí, para evitar que un elemento pueda ser clasificado en dos casilleros distintos. Después cada uno de esos casilleros se ordena individualmente con otro algoritmo de ordenación (que podría ser distinto según el casillero), o se aplica recursivamente este algoritmo para obtener casilleros con menos elementos.

función bucket-sort(elementos, n)

casilleros ← colección de n listas

para i = 1 hasta longitud(elementos) hacer

c ← buscar el casillero adecuado

insertar elementos[i] en casillero[c]

fin para

para i = 1 hasta n hacer

ordenar(casilleros[i])

fin para

devolver

la concatenación de casilleros[1],..., casilleros[n]