Короче говоря : это зависит от того, как реализовано ведро.Со связанным списком это можно сделать в O (n) при определенных условиях.Для реализации с деревьями AVL в качестве сегментов это действительно может привести к O (n log n) .Чтобы вычислить временную сложность, реализация блоков должна быть известна.
Часто сегмент не реализуется с помощью дерева AVL или дерева в целом, но со связаннымсписок.Если есть ссылка на запись списка last
, добавление может быть выполнено в O (1) .В противном случае мы все равно можем достичь O (1) путем с добавлением связанного списка (в этом случае сегменты хранят данные в обратном порядке вставки).
Идея использованияСвязанный список - это то, что словарь, который использует разумную функцию хеширования, должен приводить к нескольким конфликтамЧасто ведро имеет ноль или один элемент, а иногда два или три, но не намного больше.В этом случае простая структура данных может быть быстрее, поскольку более простая структура данных обычно требует меньше циклов на итерацию.
В некоторых хеш-таблицах используется открытая адресация , где сегменты не являются отдельными структурами данных, ноесли ведро уже занято, используется следующее свободное ведро.В этом случае поиск, таким образом, будет повторяться по используемым сегментам, пока не будет найдена соответствующая запись, или пока он не достигнет пустого сегмента.
Статья Википедии о Хеш-таблица s обсуждает, как сегменты могут быть реализованы.