El dominio de interés es la coincidencia de cadenas. Supongamos que tengo una estructura como esta.¿Cómo harías para diseñar una función para un hash perfecto?
typedef struct
{
char *name,
int (*function)();
} StringArray
StringArray s[] =
{
{"George", func1},
{"Paul", func2},
{"Ringo", func3},
{"John", func4},
{"", NULL} /* End of list */
}
Hay un número fijo de cadenas en la matriz. Están codificados como en el ejemplo. Si la tabla cambia, sería necesario volver a evaluar la calidad de la función hash.
Quiero aplicar una función hash a una cadena, y si la cadena coincide con una en la matriz, , llame a la función. Se necesita una función hash perfecta para esto. No se permiten colisiones. El propósito de requerir hashing es obtener un rendimiento de O (1) en la búsqueda.
¿Qué ideas tiene sobre el diseño de una función para hacer esto?
No creo que el spam significa lo que creo que significa –
@Mitch: ¿Quieres decir que esto es una pregunta que podría ser fácilmente buscado en Google para? –
@ j_random_hacker: lo hice. Pero es tarde y no es spam ... –