La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione agli algoritmi e strutture dati 2/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2005 – The McGraw-Hill Companies srl.

Presentazioni simili


Presentazione sul tema: "Introduzione agli algoritmi e strutture dati 2/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2005 – The McGraw-Hill Companies srl."— Transcript della presentazione:

1 Introduzione agli algoritmi e strutture dati 2/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2005 – The McGraw-Hill Companies srl Algoritmi come soluzioni di problemi computazionali. INTRODUZIONE Esempio1: problema dell’ordinamento. Input: a 1,a 2,...,a n Output: a' 1,a' 2,...,a' n permutazione (riarrangiamento) di a 1,a 2,...,a n tale che a' 1  a' 2 ...  a' n.

2 Introduzione agli algoritmi e strutture dati 2/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2005 – The McGraw-Hill Companies srl Soluzione1: Algoritmo InsertionSort. InsertionSort (A) n  lunghezza[A] for j  2 to n do  inserisce A[j] nella sequenza  ordinata A[1..j-1] x  A[j] i  j - 1 while i  1 and x < A[i] do A[i+1]  A[i] i  i – 1 A[i+1]  x

3 Introduzione agli algoritmi e strutture dati 2/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2005 – The McGraw-Hill Companies srl InsertionSort (A) n  lunghezza[A] for j  2 to n do  inserisce A[j] nella sequenza  ordinata A[1..j-1] x  A[j] i  j – 1 while i  1 and x < A[i] do A[i+1]  A[i] i  i – 1 A[i+1]  x void InsertionSort (vector A) { int i,j,n = A.size(); tipo x; for (j = 1; j < n; j++) { // inserisce A[j] nella sequenza // ordinata A[0..j-1] x = A[j]; i = j – 1; while (i >= 0 && x < A[i]) { A[i+1] = A[i]; i--; } A[i+1] = x; }

4 Introduzione agli algoritmi e strutture dati 2/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2005 – The McGraw-Hill Companies srl x 5 8 4 7 1 3 6 5 x 8 4 7 1 3 622 5 x 4 7 1 3 682 5 8 x 7 1 3 64 2 x 5 8 7 1 3 6 2 5 x 4 7 1 3 6 2 4 5 8 x 1 3 67 2 4 5 x 8 1 3 6 5 2 8 4 7 1 3 6 2 5 8 4 7 1 3 6 2 4 5 8 7 1 3 6 InsertionSort (A) n  lunghezza (A) for j  2 to n do  inserisce A[j] nella sequenza  ordinata A[1..j-1] x  A[j] i  j – 1 while i  1 and x < A[i] do A[i+1]  A[i] i  i – 1 A[i+1]  x

5 Introduzione agli algoritmi e strutture dati 2/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2005 – The McGraw-Hill Companies srl 2 4 5 7 8 x 3 61 x 2 4 5 7 8 3 6 1 2 4 5 7 8 x 63 1 2 x 4 5 7 8 6 1 2 3 4 5 7 8 x6 1 2 3 4 5 x 7 8 1 2 3 4 5 6 7 8 2 4 5 7 8 1 3 6 1 2 4 5 7 8 3 6 1 2 3 4 5 7 8 6 InsertionSort (A) n  lunghezza (A) for j  2 to n do  inserisce A[j] nella sequenza  ordinata A[1..j-1] x  A[j] i  j – 1 while i  1 and x < A[i] do A[i+1]  A[i] i  i – 1 A[i+1]  x 2 4 5 x 8 1 3 6 Continua…


Scaricare ppt "Introduzione agli algoritmi e strutture dati 2/ed T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein Copyright © 2005 – The McGraw-Hill Companies srl."

Presentazioni simili


Annunci Google