Algoritmi ricorsivi e algoritmi iterativi

Quando si sente parlare di algoritmo si pensa subito alla matematica o all’informatica e a qualcosa di astratto molto lontano dalla nostra vita reale.

In realtà, gli algoritmi sono dei meccanismi logici che permettono, attraverso un set di istruzioni, di restituire un risultato ad un insieme di dati ricevuti in ingresso e sono utilizzati da ogni tipo di sistema tecnologico sia fisico che digitale.

Un esempio lampante è rappresentato dai social, le app e i software che utilizziamo tutti i giorni e che fanno uso di una miriade di algoritmi che interagiscono tra di loro per risolvere problemi di qualsiasi genere.  È luogo comune, infatti, pensare che un programma/applicazione sia formato da un unico algoritmo o che siano la stessa cosa, in realtà con il termine “programma” in ambito informatico si intende un sistema formato da uno o più algoritmi che fanno anche utilizzo di strutture dati (modelli di rappresentazione dei dati).

Come è facile intuire gli algoritmi possono avere diverse forme strutturali: una classificazione molto nota che affronta la risoluzione dei problemi in modi molto differenti sono gli algoritmi iterativi e algoritmi ricorsivi (sostanzialmente le due tipologie possono risolvere anche lo stesso problema).

Vediamo quali sono i loro significati in campo informatico.

Algoritmo iterativo

L’iterazione avviene all’interno di cicli che vengono svolti fino a quando non viene soddisfatto il la condizione di ciclo; questo è costituito dalla cosiddetta “condizione di ripetizione” che controlla se necessario ripetere il ciclo oppure no.

Nei linguaggi di programmazione questo algoritmo è utilizzato mediante le strutture cicliche come “for…next” oppure “do….while”

Algoritmo ricorsivo

La ricorsione invece avviene mediante una sorta di analisi interna. In informatica, infatti, questo viene effettuato con il richiamo di specifici moduli (o funzioni) posti all’interno della procedura madre che vengono eseguiti in continuazione auto-richiamandosi fino a quando la condizione basilare di partenza non viene riconosciuta come effettuata.

Ad esempio questo tipo di sistema è utilizzato negli algoritmi di ordinamento dei dati.

Vantaggi e Svantaggi

Entrambi gli algoritmi sono validi per la soluzione di qualsiasi tipo di problema, ma quali sono i loro vantaggi e/o svantaggi?

Ricorsivi

L’algoritmo è ramificato all’interno delle sub o delle funzioni che compongono il main della procedura. Questo comporta un utilizzo maggiore sia delle risorse (memoria fisica per gli swap e memoria RAM e CPU per l’elaborazione) oltre che di tempo.

In caso di errore con cicli infiniti, è più complesso stabilire il punto di errore in quanto le variabili di input possono essere molte e sparse all’interno della procedura.

Iterativi

L’algoritmo è racchiuso all’interno del modulo stesso ed ha una struttura ciclica dove il processo ha fine nel momento in cui la condizione di partenza si avvera con la variabile di controllo del ciclo che inevitabilmente diventa falsa.

Se questa unica variabile di controllo non cambia mai stato allora si hanno un numero di cicli infinito.

 

Matteo Bleve

Leggi anche questi articoli

Lead Generation: creare conversazioni per generare contatti qualificati

Per farsi strada in un mondo sempre più affollato e riuscire a catturare l’attenzione di persone che mostrano un reale interesse verso la tua ...
Alessia Nuzzo

Link nelle storie di Instagram: presto disponibile per tutti!

Fin dalla sua uscita Instagram si è saputo fare apprezzare per la grande attrattiva rappresentata anche come strumento di marketing, taleà ...
Federico Petracca

Come migliorare l’esperienza d’acquisto da mobile

Acquistare on line è ormai diventata un’abitudine consolidata anche in Italia: a testimoniarlo sono i numeri del settore eCommerce che, ...
Alessia Nuzzo
CHIAMA SCRIVICI