#data-structures #hash #hashtable
#структуры данных #хеширование #хеш-таблица
Вопрос:
Время поиска хеш-значения равно O (1 альфа), где
alpha = number of elements/size of table
Я не понимаю, почему добавляется 1?
Проверенное ожидаемое число элементов
(1/n summation of i=1 to n (1 (i-1/m)))
Я тоже этого не понимаю.Как это происходит?
(Я знаю, как решить приведенное выше выражение, но я хочу понять, как это привело к этому выражению ..)
РЕДАКТИРОВАТЬ: n — количество присутствующих элементов, а m — количество слотов или размер таблицы
Комментарии:
1. пожалуйста, укажите, во время какой операции «элементы [проверяются]»? во время одного поиска? что такое
m
иn
в вашем выражении?n
вероятно, общее количество элементов, ноm
?2. @armel спасибо .. Я отредактировал вопрос и да во время одной операции поиска, а n — количество элементов, присутствующих в таблице
Ответ №1:
Я не понимаю, почему добавляется 1?
Значение O (1) указывает на то, что даже если в корзине или хэш-таблице вообще нет элемента, вам придется вычислить значение хэша ключа, и, следовательно, оно не будет мгновенным.
Ваша вторая часть нуждается в уточнениях. Смотрите мои комментарии.
Редактировать: Ваша вторая часть предназначена для «амортизированного анализа», идея состоит в том, чтобы фактически учитывать каждую вставку в наборе из n вставок в изначально пустой хеш-таблице, каждый поиск будет принимать O (1) хеширование плюс O (i-1 / m) поиск содержимого корзины, учитывая, что каждое ведро равномернозаполняется относительно предыдущих элементов. Разрешение суммы фактически дает амортизированное время O (1 альфа).
Комментарии:
1. Таким образом, это означает, что для поиска этого конкретного элемента ключевое хэш-значение для него вычисляется за постоянное время O (1).. Я прав?
2. O (1) здесь означает, что оно не зависит от количества элементов и размера хеш-таблицы. Конечно, это зависит от сложности ключа. Вычисление хеш-ключа для целого числа может быть тривиальным и занимать постоянное время, поэтому O (1), в то время как для строк это может быть O (размер строки) и так далее.
3. ХОРОШО, понял, спасибо .. и информация о второй части актуальна? что-нибудь еще требуется с моей стороны?