Найти хэш-таблицы - с идеальным хэш, в C

У меня есть приложение C-языка, где мне нужно сделать наплевать на таблице.

Записи - это строки, все известны в начале времени выполнения. Таблица инициализирована один раз, а затем посмотрела много раз. Таблица может измениться, но в основном, как будто приложение начинается закончится. Я думаю, что это значит, что я могу использовать идеальный хэш? Это нормально, чтобы потреблять некоторое время для Hashtable инициализации, так как это происходит только один раз.

Там будет от 3 до 100 000 записей, каждый уникальный, и я оцениваю, что 80% случаев будут иметь менее 100 записей. Простой наивный поиск «достаточно быстро» в этих случаях. (== Никто не жалуется)

Однако в случаях, когда есть 10K + записи, скорость поиска наивного подхода недопустима. Какой хороший подход для доставки хорошего образца на основе Hasthtable на основе строк в C? Предположим, у меня нет 3-й партийной коммерческой библиотеки, такой как Boost / etc. Какой хеш-алгоритм я должен использовать? Как я могу решить?

6
задан Cheeso 7 September 2011 в 03:38
поделиться