Назад к вопросам
Junior — Middle
86
Можете привести пример алгоритма хеширования для строковых данных?
Компании, где спрашивали
Baum
Ответ от нейросети
sobes.tech AI
Один из простых и популярных алгоритмов хеширования строк в C/C++ — это алгоритм djb2, предложенный Дэном Бернштейном. Он хорошо подходит для строк и прост в реализации:
unsigned long djb2_hash(const char *str) {
unsigned long hash = 5381;
int c;
while ((c = *str++)) {
hash = ((hash << 5) + hash) + c; // hash * 33 + c
}
return hash;
}
Этот алгоритм последовательно обрабатывает каждый символ строки, умножая текущий хеш на 33 и прибавляя код символа. Он часто используется из-за хорошего распределения хешей и простоты.