funkcje hashujące

0

Witam. Mam taki problem. Tworze slownik ktory umieszczam w tablicy rozproszonej i jest mi do tego celu potrzebna dobra funkcja hashujaca. Dotychczas testowalem dwie:
int hash_function(char *s)
{
unsigned int n=0;
for (;s;s++)
n=34
n+*s;
return n%tabsize;
}
oraz funcjkcje J.P.Weinbergera.
Niestety otrzymalem bardzo duza liczbe kolizji. Przy tablicy o wielkosci rownej w przyblizeniu liczbie slow bylo to okolo 40%.
Czy moglby ktos mi polecic jakas dobra funcje. lub wrzucic linka do czegos takiego.
Z gory wielkie dzieki.

0

Z tego co pamietam, przy polach tekstowych rozmiar tablicy najlepiej jak by byl liczba pierwsza.

0

to jest spelnione. Jednak mimo tego liczba kolizji jest bardzo duzo, co przy roziwiazaniu metoda lancuchowa moze znacznie wplywac na szybkosc dzialania algorytmu.

0

A czy chociaż zadałeś sobie trud przeczytania kilku artykułów na ten temat??

http://www.google.com/search?q=good+string+hash+function

1 użytkowników online, w tym zalogowanych: 0, gości: 1