Как я могу оптимизировать функцию ha sh ниже, чтобы предотвратить столкновение - PullRequest
0 голосов
/ 27 апреля 2020

Как я могу оптимизировать функцию ha sh ниже, чтобы предотвратить столкновение.

for (hashval = 0; *word != '\0'; word++)
{
    hashval enter code here= *word + 3 ;
    key = hashval % 100;
    return key ;   
}

1 Ответ

1 голос
/ 27 апреля 2020

Нельзя предотвратить ха sh коллизий, они неизменно случаются. При фиксированном количестве возможных выходных данных и неограниченном количестве возможных входных данных (определение фактически для функции ha sh ) коллизии неизбежны.

Создание, отладка и исправление алгоритма ha sh также не являются обычной работой программистов. Это работа для математиков в первую очередь. Нет веской причины для реализации собственного алгоритма хеширования. Существующие будут лучше. Они разработаны и протестированы группами специалистов из разных областей. Ваша единственная цель должна заключаться в их реализации, но даже здесь вы очень подвержены ошибкам. И, по возможности, должен оставить это авторам фреймворков и библиотек, где это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...