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=34n+*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
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??