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

Scopriamo i trend social del 2022

Il consumatore è sovrano! Questo detto (rivisitato) vale anche nel mondo online. Ogni marchio per sopravvivere deve saper ascoltare e interpretare ...
Alessia Nuzzo

Le ultime novità di Instagram [aggiornamento ottobre 2021]

Instagram è pronto a rivoluzionarsi e lo farà subito mettendo a disposizione dei propri utenti tantissime novità. ...
Federico Petracca

“Pillole” di web marketing: guida ai social per strutture sanitarie

Sono ormai tantissimi gli utenti che sfruttano internet per ottenere informazioni di ogni genere. Non fanno eccezione le ricerche in tema di salute. ...
Giulia Chiffi
CHIAMA SCRIVICI