У меня есть приложение на языке C, где мне нужно выполнять поиск по таблицам.
Записи являются строками, все известны в начале выполнения.Таблица инициализируется один раз, а затем просматривается много раз.Таблица может измениться, но это в основном так, как будто приложение запускается заново.Я думаю, это означает, что я могу использовать идеальный хеш?Можно потратить некоторое время на инициализацию хеш-таблицы, как это происходит только один раз.
Будет от 3 до 100 000 записей, каждая из которых уникальна, и я предполагаю, что в 80% случаев будет менее 100 записей.В таких случаях простой наивный поиск достаточно быстр.(== никто не жалуется)
Однако в случаях, когда существует более 10 000 записей, скорость поиска наивного подхода неприемлема.Каков хороший подход для обеспечения хорошей производительности поиска строк на основе хеш-таблиц?Предположим, у меня нет сторонней коммерческой библиотеки, такой как Boost / etc.Какой алгоритм хеширования я должен использовать?как мне решить?