SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
RICORSIONE
   Talk 3
DIGRESSIONE: STACK E HEAP
DIGRESSIONE: STACK E HEAP
DIGRESSIONE: CODICE
              RIENTRANTE
Codice che è possibile eseguire più volte in contemporanea.	


• Non   si modifica durante l'esecuzione.	


• Non   invoca routine non rientranti.	


• Usa   solo variabili allocate sullo stack.	


• Non modifica aree di memoria condivisa (niente variabili
 globali o statiche).
Ricorsione:	

     vedi: Ricorsione.
FUNZIONI RICORSIVE
  program Recursion;!
  {$APPTYPE CONSOLE}!
  !
  procedure Recurse(I: Integer);!
  begin!
      Writeln(I);!
      Recurse(I + 1);!
  end;!
  !
  begin!
       Recurse(0);!
  end.
FUNZIONI RICORSIVE

public class Recurse {!
    public static void main(String[] args) {!
        recurse(0);!
    }!
!
    private static void recurse(int i) {!
        System.out.println(i);!
        recurse(i + 1);!
    }!
}
FUNZIONI RICORSIVE


    (function recurse(i) {!
        console.log(i);!
        recurse(i++);!
    })(0);
FUNZIONI RICORSIVE


10   I = 0!
20   PRINT I!
30   I = I + 1!
40   GOSUB 20
DIVIDE AND CONQUER


• Suddividere   il problema in sotto problemi.	


• Risolvere
         ciascun problema nello stesso esatto modo del
 problema principale.	


• Mettere   insieme i risultati dei sotto problemi.
CONDIZIONE DI
TERMINAZIONE
ESEMPIO: MERGESORT
PROBLEMI RICORSIVI


Non ci sono problemi intrinsecamente
ricorsivi, ma algoritmi ricorsivi che
risolvono i problemi.
STRUTTURE DATI RICORSIVE


• Albero   dei parametri di RBI.	

• Database    delle anagrafiche di BBox.	

•I   punti della nuvola di punti.
OTTIMIZZAZIONE DI
        STRUTTURE DATI


• Implementazioni     iterative di algoritmi ricorsivi.	

• Strutture   dati ausiliarie.
Ricorsione:	

     se non l'hai ancora capita vedi: Ricorsione.

Weitere ähnliche Inhalte

Mehr von Federico Russo (19)

23 Sicurezza in BBox
23 Sicurezza in BBox23 Sicurezza in BBox
23 Sicurezza in BBox
 
21 Buzzwords
21 Buzzwords21 Buzzwords
21 Buzzwords
 
18 - InfluxDB
18 - InfluxDB18 - InfluxDB
18 - InfluxDB
 
19 - The Highlander Project
19 - The Highlander Project19 - The Highlander Project
19 - The Highlander Project
 
22 - Better Coding
22 - Better Coding22 - Better Coding
22 - Better Coding
 
20 - Ottimizzare le query
20 - Ottimizzare le query20 - Ottimizzare le query
20 - Ottimizzare le query
 
17 - Web Application Threats
17 - Web Application Threats17 - Web Application Threats
17 - Web Application Threats
 
16 - Project Lombok
16 - Project Lombok16 - Project Lombok
16 - Project Lombok
 
15 - Java 8
15 - Java 815 - Java 8
15 - Java 8
 
14 - Atom
14 - Atom14 - Atom
14 - Atom
 
BBox e vaadin7
BBox e vaadin7BBox e vaadin7
BBox e vaadin7
 
Tile server
Tile serverTile server
Tile server
 
Vaadin7
Vaadin7Vaadin7
Vaadin7
 
12 java modifiers
12 java modifiers12 java modifiers
12 java modifiers
 
10 Data caching
10 Data caching10 Data caching
10 Data caching
 
04-JVM
04-JVM04-JVM
04-JVM
 
02 - Collezioni
02 - Collezioni02 - Collezioni
02 - Collezioni
 
01 - Ereditarietà e polimorfismo
01 - Ereditarietà e polimorfismo01 - Ereditarietà e polimorfismo
01 - Ereditarietà e polimorfismo
 
DataSnap
DataSnapDataSnap
DataSnap
 

03 - Ricorsione