Dinamično programiranje: Razlika med redakcijama

Izbrisana vsebina Dodana vsebina
m m/nvg
m m/dp/pnp
Vrstica 13:
* pristop nazaj
 
Prednost dinamičnega programiranja je predvsem ta, da kadar želimo delati z več [[objekt]]i, zanje ni potrebno rezervirati fiksnih količin spomina (glej [[tabela (računalništvo)|tabela]]) ampak ga lahko dodeljujemo dinamično po potrebi. Podatke lahko s [[kazalec (računalništvo)|kazalci]] uredimo, na primer, v vrsto (podatkovni tip) oseb, ki stojijo pred blagajno. Vsak objekt (Oseba) v tej vrsti bo vseboval [[atribut]]e o sebi ter kazalec na naslednjo osebo. Zadnji objekt bo vseboval kazalec na prazen prostor (null). Kadar dodamo novo osebo v vrsto, dinamično rezerviramo v [[pomnilnik]]u prostor za novo osebo (ustvarimo nov objekt), ter zadnji osebi spremenimo prazen kazalec na novoustvarjeno osebo. (glej tudi podatkovne strukture seznam, sklad)
 
Tak način dodeljevanja pomnilnika je zelo pomemben pri [[algoritem|algoritmih]], ki zahtevajo veliko število [[operacija|operacij]] nad veliko količino [[podatek|podatkov]]. Prav tako lahko pri zahtevnejših podatkovnih strukturah kazalci kažejo na več sosednjih objektov in s tem tvorijo drevo (glej binarna odločitvena drevesa (ang. Binary Decision Tree, BDT)). Za optimizacijo iskalnega [[čas]]a je potrebno podatke že ob vstavljanju umestiti na ustrezno mesto ter včasih tudi spremeniti strukturo drevesa (Bayerjevo drevo, rdeče-črna drevesa, rotacije). Pri tem dinamično spreminjamo kazalce med objekti.