Estou fazendo um codigo aqui para medir a eficiencia da minha tabela Hash e implementei a seguinte funcao Hash:
int hashCode (char *s, int d)//d é o numero da classe de espalhamento
{
int i;
unsigned int h = 0;
for (i = 0; s[i]; i++)
{
h = (h << d) | (h >> (32-d));
h = h + abs(s[i]);
}
return h % 300000;
}
Estou utilizando um dicionario de 300000 palavras em .txt para testar.
O problema é que essa funcao causa muitas colisoes.
alguém conhece uma funcao melhor que essa para trabalhar com String?
Pergunta
tardioli
Estou fazendo um codigo aqui para medir a eficiencia da minha tabela Hash e implementei a seguinte funcao Hash:
Estou utilizando um dicionario de 300000 palavras em .txt para testar.
O problema é que essa funcao causa muitas colisoes.
alguém conhece uma funcao melhor que essa para trabalhar com String?
Obrigado pela ajuda!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.