WikiDer > Динамизация

Dynamization

В Информатика, динамизация это процесс преобразования статическая структура данных в динамичный один. Хотя статические структуры данных могут обеспечивать очень хорошую функциональность и быстрые запросы, их полезность ограничена из-за их неспособности быстро увеличиваться / уменьшаться, что делает их неприменимыми для решения динамические проблемы, где изменяется количество входных данных. Методы динамизации обеспечивают единообразные способы создания динамических структур данных.

Разложимые проблемы поиска

Определяем проблему поиска предиката матч в наборе в качестве . Проблема является разложимый если набор можно разложить на подмножества и существует операция объединения результатов, чтобы .

Разложение

Декомпозиция - это термин, используемый в информатике для разбиения статических структур данных на более мелкие единицы неравного размера. Основной принцип заключается в том, что любое десятичное число может быть переведено в представление в любой другой системе. Более подробно по теме см. Декомпозиция (информатика). Для простоты в этой статье будет использоваться двоичная система, но любая другая база (а также другие возможности, такие как Числа Фибоначчи) также можно использовать.

Если используется двоичная система, набор элементы разбиты на подмножества размеров с

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

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

Если

 = время построить статическую структуру данных = время для запроса статической структуры данных = время для запроса динамической структуры данных, сформированной путем декомпозиции = амортизированное время вставки

тогда

  

Если по крайней мере многочлен, тогда .

дальнейшее чтение