В информатике, динамизация - это процесс преобразования a в единицу. Хотя статические структуры данных могут обеспечивать очень хорошую функциональность и быстрые запросы, их полезность ограничена из-за их неспособности быстро увеличиваться / уменьшаться, что делает их неприменимыми для решения динамических проблем, где объем входных данных изменения данных. Методы динамизации обеспечивают единообразные способы создания динамических структур данных.
Мы определяем задачу поиска предиката соответствует в наборе как . Задача является разложимой, если набор можно разложить на подмножества и существует операция объединения результатов такая, что .
Декомпозиция - это термин, используемый в информатике для разбиения статических структур данных на более мелкие единицы неравного размера. Основной принцип заключается в том, что любое десятичное число может быть переведено в представление в любой другой системе. Для получения дополнительных сведений по теме см. Декомпозиция (информатика). Для простоты в этой статье будет использоваться двоичная система, но также можно использовать любую другую основу (а также другие возможности, такие как числа Фибоначчи ).
Если используется двоичная система, набор из элементов разбивается на подмножества размеров с
элементы, где - это -й бит в двоичном формате. Это означает, что если имеет -й бит, равный 0, соответствующий набор не содержит никаких элементов. Каждое подмножество имеет то же свойство, что и исходная статическая структура данных. Операции, выполняемые с новой динамической структурой данных, могут включать просмотр наборов , сформированных путем декомпозиции. В результате это добавит коэффициент в отличие от операций со статической структурой данных, но позволит добавить операцию вставки / удаления.
Курт Мельхорн доказал несколько уравнений для временной сложности операций над структурами данных, динамизованными в соответствии с этой идеей. Перечислены некоторые из этих равенств.
Если
= время для построения статической структуры данных = время для запроса статической структуры данных = время для запроса динамической структуры данных, сформированной разложением = амортизированное время вставки
, затем
Если не менее многочлен, тогда .