Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

AlgoMOOC 05.01. La complessità computazionale

3 130 vues

Publié le

http://codemooc.org/algoritmi

Publié dans : Formation
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

AlgoMOOC 05.01. La complessità computazionale

  1. 1. http://codemooc.org/algoritmi/ Algo 05.01 La complessità computazionale alessandro bogliolo
  2. 2. Algo 05.01 alessandro.bogliolo@uniurb.it Ilquadrato
  3. 3. Algo 05.01 alessandro.bogliolo@uniurb.it Codice etracciadiesecuzione La traccia di esecuzione è la sequenza delle istruzioni effettivamente eseguite. Di solito non coincide con il codice poiché le ripetizioni, le condizioni e le chiamate a procedure o funzioni lo rendono non lineare.
  4. 4. Algo 05.01 alessandro.bogliolo@uniurb.it Efficienzaecomplessità Contiamoipassielementari 4*(controlloCiclo + 2*(controlloCiclo + moveForward) + turnRight) 4*controlloCiclo + 8*controlloCiclo + 8*moveForward + 4*turnRight
  5. 5. Algo 05.01 alessandro.bogliolo@uniurb.it Eseipassi dipendonodaidati? Assegnamento+B(For+A(For+Incremento)) Assegnamento+B*For + B*A(For+Incremento) 1+B*1+B*A*2 Il computo dei passi eseguiti è dominato dal termine A*B
  6. 6. Algo 05.01 alessandro.bogliolo@uniurb.it Eseipassi dipendonodaidati? Assegnamento+A(For+Incremento)+B(For+Incremento) Assegnamento+(A+B)(For+Incremento) 1+(A+B)*2 Il computo dei passi eseguiti è dominato dal termine A+B
  7. 7. Algo 05.01 alessandro.bogliolo@uniurb.it Eseipassi dipendonodaidati? Calcolo di N!, che si legge N fattoriale. Prodotto dei primi N numeri interi Il ciclo invoca N volte la funzione moltiplica per calcolare: • La prima volta: 1*1 • La seconda volta: 1*2 • La terza volta: 2*3 • La quarta volta: 6*4 • … • L’ultima volta: (N-1)!*N Per il generico valore di i, si moltiplica i per il valore di fact già calcolato, che vale (i-1)! Se l’unica istruzione elementare di cui disponiamo è l’incremento unitario, il numero di passi complessivi è pari a 1*1 + 1*2 + 2*3 + 6*4 + … + (N-1)!*N Come dire: 1! + 2! + 3! + 4! + 5! + … + N! Dominato da (N+1)!
  8. 8. Algo 05.01 alessandro.bogliolo@uniurb.it Regoleperilcalcolo dellacomplessità1. Il numero di ripetizioni di cicli nidificati si moltiplica 3. Procedure e funzioni incapsulano il codice, ma non ne nascondono la complessità 2. Il numero di ripetizioni di cicli consecutivi si somma
  9. 9. Algo 05.01 alessandro.bogliolo@uniurb.it Qualipassi sonodavveroelementari? Addizione e moltiplicazione possono essere considerate istruzioni elementari solo se: 1. il loro tempo di esecuzione può essere ritenuto costante indipendentemente dal valore degli operandi 2. l’esecutore le conosce senza bisogno di descriverle in termini di passi più semplici Nei calcolatori questo è vero finché i numeri non superano le dimensioni della rappresentazione adottata da chi li ha progettati

×