Sobes.tech
Back to questions
Junior — Middle
87

Можете привести пример алгоритма хеширования для строковых данных?

Companies where asked
Baum

Answer from AI

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 и прибавляя код символа. Он часто используется из-за хорошего распределения хешей и простоты.