Я делаю хэш-таблицу и реализовали следующий хэш-функцииперефразируя функция в C
int linesn=8;
int hash(char *str, int table_size)
{
int sum;
// Make sure a valid string passed in
if (str==NULL) return -1;
// Sum up all the characters in the string
for(; *str; str++) sum += *str;
// Return the sum mod the table size
return sum % table_size;
}
char *str="Carlos";
int hashv=hash(str,linesn);
printf("\nThe hash value is: %d",hashv);
Как и в любой хеш-функции существуют столкновения, как можно реализовать функцию Rehashing, чтобы предотвратить эти столкновения, я прочитал Google, но примеры сложны для меня, любой может дать мне идею, пожалуйста.
Заранее спасибо
Возможно, у вас немного улучшенная хэш-функция; см. [this] (http://stackoverflow.com/a/8317622/841108) –