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

Verso un futuro senza cookie: strategie vincenti per navigare nel cambiamento

Il futuro del digital marketing cambierà notevolmente con la decisione di Google di eliminare i cookie di terze parti entro il 2024. Questoà ...

Comunicazione Responsabile: la nuova era del Marketing Digitale

In un mondo dove la comunicazione digitale è diventata onnipresente, parlare di Comunicazione Responsabile non è solo un dovere etico, ma anche una ...

Trend 2024 Graphic Design: scopri quali sono le tendenze più influenti

Il mondo del graphic design è in costante evoluzione, un caleidoscopio di tendenze che si rinnovano anno dopo anno, influenzando profondamente la ...
CHIAMA SCRIVICI