Меня немного смущает время, необходимое для вставки или удаления элемента из списка пропуска.
Допустим, есть список пропуска высотой H, и каждый уровень содержит n/2^i записей.
n = общее количество пар ключ-значение
i = уровень списка пропуска i‹= H
Теперь согласно теории операция вставки будет выполнять следующие действия
1. Найти ключ ‹= вставляемому ключу.
2. вставить этот ключ
3. случайным образом создать эту запись в выше базового уровня.
Предположим, что список пропуска основан на связанном списке.
Шаг 1: Должен занять O(n).
Шаг 2: Должен быть O(1).
Шаг 3: Должен быть O(log n) времени. Я все еще запутался в этой логике, и это будет частью вопроса ниже
Вопрос
Основываясь на приведенных выше фактах, не должно ли время вставки быть O (n) + O (1) + O (log n)? игнорируя условия более низкого порядка, он должен идти O (n) + O (log n)?
Шаг 3 снова должен занять O(n) времени для поиска ключа ‹= вставляемого ключа, а затем o(1) для вставки. Что приводит к очень сложному времени выполнения вставки?
В книгах говорится, что вставка в список пропуска занимает время O(log n). Должно быть, мне не хватает какой-то важной информации, не могли бы вы помочь мне понять эту концепцию.