Dynamisering
Inom datavetenskap är dynamisering processen att omvandla en statisk datastruktur till en dynamisk . Även om statiska datastrukturer kan ge mycket bra funktionalitet och snabba frågor, är deras användbarhet begränsad på grund av deras oförmåga att växa/krympas snabbt, vilket gör dem otillämpliga för lösning av dynamiska problem , där indata ändras. Dynamiseringstekniker ger enhetliga sätt att skapa dynamiska datastrukturer.
Nedbrytbara sökproblem
Vi definierar problemet för att söka efter predikatet -matchningen i uppsättningen som . Problem är nedbrytbart om mängden kan dekomponeras i delmängder och det finns en operation för resultatförening så att .
Sönderfall
Nedbrytning är en term som används inom datavetenskap för att bryta statiska datastrukturer i mindre enheter av olika storlek. Grundprincipen är idén att vilket decimaltal som helst kan översättas till en representation i vilken annan bas som helst. För mer information om ämnet se Nedbrytning (datavetenskap) . För enkelhetens skull kommer binära system att användas i den här artikeln men vilken annan bas som helst (liksom andra möjligheter som Fibonacci-tal ) kan också användas.
Om du använder det binära systemet, bryts en uppsättning av
element där är den -te biten av i binär. Detta betyder att om har -th bit lika med 0, innehåller motsvarande uppsättning inga element. Var och en av delmängderna har samma egenskap som den ursprungliga statiska datastrukturen. Operationer som utförs på den nya dynamiska datastrukturen kan innebära att man korsar uppsättningar som bildats genom nedbrytning. Som ett resultat kommer detta att lägga till faktor i motsats till de statiska datastrukturoperationerna men tillåter att infoga/radera operationen kan läggas till .
Kurt Mehlhorn bevisade flera ekvationer för tidskomplexitet för operationer på datastrukturer som dynamiserats enligt denna idé. Några av dessa jämställdheter är listade.
Om
- är tiden för att bygga den statiska datastrukturen
- är tiden för att fråga den statiska datastrukturen
- är tiden för att fråga den dynamiska datastrukturen som bildas av nedbrytning
- är den amorterade insättningstiden
sedan
Om är åtminstone polynom , då .
Vidare läsning
- Kurt Mehlhorn, Datastrukturer och algoritmer 3, . An EATCS Series, vol. 3, Springer, 1984.