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.
Barra Servizi

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.

 

Leggi anche questi articoli

Instagram rinnova l’algoritmo: sarà possibile azzerare i contenuti suggeriti

Instagram continua a evolversi e sta per introdurre una nuova funzionalità che rivoluzionerà l’esperienza degli utenti: la possibilità di...

WordPress o WP Engine: quale direzione prenderà il futuro della piattaforma più amata del web?

Nell’universo del web design e della gestione di contenuti online, il dibattito su quale sia la migliore piattaforma di gestione dei contenuti...

WhatsApp arriva su Google Ads in Italia: come attivare l’estensione per messaggi diretti

Come avevamo anticipato in un precedente articolo, Google Ads ha finalmente reso disponibile in Italia l’integrazione con WhatsApp! Ora puoi...
CHIAMA SCRIVICI