Dynamizace - Dynamization
v počítačová věda, dynamizace je proces transformace a statická datová struktura do dynamický jeden. Ačkoli statické datové struktury mohou poskytovat velmi dobrou funkčnost a rychlé dotazy, jejich užitečnost je omezena kvůli jejich neschopnosti rychle růst / zmenšit se, což je činí nepoužitelnými pro řešení dynamické problémy, kde se mění množství vstupních dat. Dynamizační techniky poskytují jednotné způsoby vytváření dynamických datových struktur.
Problémy s rozložitelným vyhledáváním
Definujeme problém hledání predikátu zápas v sadě tak jako . Problém je rozložitelný pokud je sada lze rozložit na podmnožiny a existuje operace sjednocení výsledku tak, že .
Rozklad
Dekompozice je termín používaný v informatice k rozdělení statických datových struktur na menší jednotky nestejné velikosti. Základním principem je myšlenka, že jakékoli desetinné číslo lze převést na reprezentaci v jakékoli jiné základně. Další podrobnosti o tématu viz Dekompozice (informatika). Pro zjednodušení bude v tomto článku použit binární systém, ale jakákoli jiná základna (stejně jako další možnosti, jako je Fibonacciho čísla ) lze také použít.
Pokud používáte binární systém, sada prvky jsou rozděleny do podskupin velikostí s
prvky kde je -tý kousek v binárním formátu. To znamená, že pokud má -tý bit rovný 0, odpovídající sada neobsahuje žádné prvky. Každá z podmnožiny má stejnou vlastnost jako původní struktura statických dat. Operace prováděné s novou dynamickou datovou strukturou mohou zahrnovat procházení množiny tvořené rozkladem. Výsledkem bude přidání faktor na rozdíl od operací statické datové struktury, ale umožní přidání operace vložení / odstranění.
Kurt Mehlhorn prokázal několik rovnic pro časovou složitost operací na datových strukturách dynamizovaných podle této myšlenky. Některé z těchto rovností jsou uvedeny.
Li
= čas na vytvoření statické datové struktury = čas na dotaz na statickou datovou strukturu = čas dotazu na dynamickou datovou strukturu tvořenou rozkladem = amortizovaná doba vložení
pak
Li je alespoň polynomiální, pak .
Další čtení
- Kurt Mehlhorn, Datové struktury a algoritmy 3,. Série EATCS, sv. 3, Springer, 1984.