Что такое большой O идеальной хэш-функции? - PullRequest
0 голосов
/ 21 декабря 2018

Обычные хеш-функции, в которых возможны коллизии, выполняются за постоянное время: O (1).Но какова временная сложность идеальной хеш-функции?Это 1?

1 Ответ

0 голосов
/ 22 декабря 2018

Если хеш-функция предназначена для доступа к хеш-таблице, то нет никакой разницы с точки зрения сложности между совершенными и обычными хеш-функциями, поскольку обе они также могут создавать коллизии в таблице.Причина в том, что индекс, связанный с элементом в хеш-таблице, является остатком от деления хеша на длину таблицы (обычно простое число).Вот почему два элемента, которые хешируют к разным значениям, столкнутся, если их остаток по модулю (упомянутого) простого числа одинаков для них обоих.Это означает, что временная сложность доступа к таблице в обоих случаях составляет O(1).

Обратите также внимание, что вычисление хеша обычно зависит от размера входных данных.Например, если элементы, которые должны быть хешированы, являются строками, хорошие хэши учитывают все их символы.Поэтому, чтобы сложность оставалась O(1), необходимо ограничить размер (или длину) входов.Опять же, это относится как к идеальным, так и к обычным хэшам.

...