Почему амортизированный анализ дерева расширения фокусируется только на операции развертывания и не учитывает поиск вниз

Каждая словарная операция в расширяемом дереве использует операцию расширения для перемещения узла в корень дерева. Амортизированная эффективность этой операции расширения обычно анализируется с помощью потенциального метода и описывается во многих источниках в Интернете (включая википедию). Амортизированное время этой операции расширения отображается как O (m lg n).

Однако я нигде не нахожу фактического анализа полных словарных операций, таких как вставка, удаление, ... Каждая из этих операций использует, помимо операции расширения, также поиск вниз по дереву, чтобы найти правильную позицию узла для вставки. или удалить. Только после того, как вы найдете этот узел, вы можете начать операцию развертывания.

Люди склонны делать такие заявления, как:

У меня два вопроса:

  • Как можно сделать такой вывод, что время выполнения поиска пропорционально времени развертки? Этот вид подразумевает, что время нисходящего перехода к узлу также пропорционально привязке расширения?
  • Какова амортизированная временная эффективность обхода вниз? Является ли это константой просто потому, что вы не меняете структуру дерева, просто выполняя обход вниз (чтобы ваш потенциал остался прежним)? И разве эта константа не больше = N, поскольку это наихудший случай?

Как можно сделать такой вывод?


person user3820186    schedule 13.08.2020    source источник


Ответы (1)


Как можно сделать такой вывод, что время выполнения поиска пропорционально времени развертки? Этот вид подразумевает, что время нисходящего перехода к узлу также пропорционально привязке расширения?

Фаза развертки работает на каждом из узлов, пройденных во время фазы поиска. Поскольку работа, выполняемая на каждом узле во время фазы поиска, является постоянной, мы заключаем, что для любой последовательности операций search = O (развернуть), следовательно, O (поиск + развернуть) = O (развернуть).

Какова амортизированная временная эффективность обхода вниз? Является ли это константой просто потому, что вы не меняете структуру дерева, просто выполняя обход вниз (чтобы ваш потенциал остался прежним)? И разве эта константа не больше = N, поскольку это наихудший случай?

Да, если бы можно было потом искать без растяжки. По ранее обсуждавшейся причине мы рассматриваем их как неразделимые, поэтому эффективно умножаем на постоянную величину амортизационные отчисления, используемые длительным расширением, чтобы охватить и поиск.

person David Eisenstat    schedule 13.08.2020