Tutti gli esempi sono in python.
1. Logica Iterativa
- Descrizione: l’iterazione consiste nel ripetere una sequenza di istruzioni fino a quando una condizione diventa falsa.
- Strumenti principali: cicli for, while, do-while.
- Caratteristiche:
- Lo stato del programma viene aggiornato a ogni passo.
- È molto intuitiva e spesso più efficiente in termini di memoria.
- Quando usarla: problemi lineari, elenchi di elementi, accumulo di risultati.
- Esempio concettuale (somma dei primi N numeri):
- somma = 0
- for i in range(1, N+1):
- somma += i
2. Logica ricorsiva.
- Descrizione: la ricorsione consiste nel definire una funzione che si richiama da sola per risolvere sottoproblemi più piccoli dello stesso tipo.
- Caratteristiche:
- ogni chiamata crea un nuovo “contesto” con i suoi parametri.
- serve una condizione di base per terminare la ricorsione.
- ideale per problemi dividi-et-impera (es. algoritmi su alberi, sequenze, combinazioni).
- Quando usarla: strutture dati gerarchiche, problemi matematici come fattoriale, Fibonacci, ricerca in profondità.
- Esempio concettuale (somma dei primi N numeri):
- def somma(N):
- if N == 0:
- return 0
- else:
- return N + somma(N-1)
3. Differenze pratiche.
| Aspetto | Iterativa | Ricorsiva |
| Stato | Aggiornato in variabili | Implicito nello stack delle chiamate |
| Complessità memoria | Bassa | Più alta (stack) |
| Facilità di scrittura | Spesso semplice | Talvolta più naturale per problemi complessi |
| Problemi tipici | Liste, accumulo, conteggi | Alberi, grafi, combinatoria |
