Dinamično programiranje: razlika med redakcijama

m
disambig., drugi drobni popravki AWB
({{normativna kontrola}})
m (disambig., drugi drobni popravki AWB)
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 [[matematična 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.
 
== Algoritmi ==
* [[0/1 nahrbtnik]]
* [[problem trgovskega potnika]]
 
{{normativna kontrola}}
 
[[Kategorija:Računalništvo]]
[[Kategorija:Algoritmi]]
{{normativna kontrola}}