Por razones de rendimiento, tengo la necesidad de dividir un conjunto de objetos identificados por una cadena en grupos. Los objetos pueden ser o bien identifican por un número o por una cadena en forma prefijada (calificado) con los puntos de separación de partes del identificador:La mejor función hash para identificadores numéricos y literales mixtos
12
323
12343
2345233
123123131
ns1:my.label.one
ns1:my.label.two
ns1:my.label.three
ns1:system.text.one
ns2:edit.box.grey
ns2:edit.box.black
ns2:edit.box.mixed
identificadores numéricos son de 1 a varios millones. Los identificadores de texto tienen muchas probabilidades de comenzar con el mismo prefijo de espacio de nombre (ns1 :) y con el mismo prefijo de ruta (edit.box.).
¿Cuál es la mejor función hash para este propósito? Sería bueno si puedo predecir de alguna manera el tamaño del cubo en función de las estadísticas del identificador de objeto. ¿Hay algunos buenos artículos para construir una buena función hash basada en cierta información estadística?
Hay varios millones de estos identificadores, pero el propósito es dividirlos en grupos de 1-2 miles basado en la función hash.
¿Ha considerado usar una o más de las siguientes funciones hash de propósito general: http://www.partow.net/programming/hashfunctions/index.html son extremadamente rápidos y eficientes. –