View Full Version : APPROCCIO INCREMENTALE E APPROCCIO RICORSIVO
xber-gigi
03-06-2004, 16:27
Salve ragazzi,
sapreste darmi al definizione di APPROCCIO RICORSIVO e APPROCCIO INCREMENTALE?
Approccio ricorsivo: a partire dal problema, lo si decompone fino ad arrivare alla soluzione minima, che è tipicamente nota. Dalla soluzione minima e nota si ricostruisce la soluzione complessiva.
In sostanza un decomponi-ricostruisci.
L'approccio incrementale prevede la composizione della soluzione complessiva tramite una serie di passi minimali. In sostanza aggiungi, aggiungi finchè non hai il risultato finale.
di + non mi ricordo e non ho voglia di ripescare il libro di informatica dalla libreria :p ....... spero che basti :)
Per programmazione ricorsiva generalmente si intende una funzione che chiama se stessa finchè non si verifica una condizione di stop, dalla quale si ricava il risultato finale.
Nella programmazione iterativa si 'ripete' lo stesso pezzo di codice piu volte.
Aggiungo che l'approccio ricorsivo spreca molta memoria; ogni volta che una funzione richiama se stessa, viene creata una copia delle variabili. Quando l'ultima funzione dà il risultato (cioè il "passo base" della ricorsione), si possono risolvere "a ritroso" tutte le precedenti chiamate, fino alla prima che darà la soluzione del problema.
Oddio...bisogna vedere quanta memoria sprecherebbe lo stesso rpogramam fatto in maniera non ricorsiva... In alcuni casi meno,,,in altri anche molta di più... La lentezza più che altro è dovuta alla preparazione all'ingresso ed al ritorno dalla funzione...ma ripeto...anche questa è relativa...non è detto che non utilizzando la ricorsione le copie da fare dei aprametri siano meno...
il problema principale della ricorsione è lo stack...che si esaurisce velocemente ;)
Però è vero che spesso la ricorsione è il modo più "naturale" di risolvere un problema mediante un algoritmo, e quindi, se uno non ha problemi di spazio o performance particolari, è spesso preferibile (se necessaria, chiaro!). E poi, il codice viene più carino... :D
xber-gigi
06-06-2004, 12:31
grazie delle riposte ma potreste darmi le definizioni precise???
tnx! ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.