Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Scegliere l'Algoritmo: Complessità Computazionale, Appunti di Informatica

Sulla scelta di un algoritmo in base alla complessità computazionale. La complessità temporale viene misurata attraverso il tempo di esecuzione e il calcolo della complessità in funzione del passo base. Il documento include esempi di algoritmi e classificazione di complessità. scritto da Rita Miratello il 14 giugno 2021.

Tipologia: Appunti

2020/2021

Caricato il 14/06/2021

rita-miritello-1
rita-miritello-1 🇮🇹

3

(4)

30 documenti

1 / 18

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
COMPLESSITA
COMPUTAZIONALE
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Anteprima parziale del testo

Scarica Scegliere l'Algoritmo: Complessità Computazionale e più Appunti in PDF di Informatica solo su Docsity!

COMPLESSITA’

COMPUTAZIONALE

Quale algoritmo scegliere?

Per ogni problema esistono molteplici algoritmi in grado di risolverlo 06/14/2021 RITA MIRITELLO 2

Complessità temporale

Stimare la quantità di tempo che occorre alla CPU per eseguire il corrispondente programma 06/14/2021 RITA MIRITELLO 4

cronometrare i tempi di alcune istanze

 - COMPUTER1 COMPUTER 
  • Dim input A 1 A 2 A 1 A
  • 50 0,005 0,07 0,05 0,
  • 100 0,003 0,13 0,18 0,
  • 200 0,13 0,27 0,73 1,
  • 300 0,32 0,42 1,65 1,
  • 400 0,55 0,57 2,93 2,
  • 06/14/2021 RITA MIRITELLO

calcolo della complessità in funzione del

passo base

è necessario esprimere il tempo di calcolo di un algoritmo A mediante una funzione T(n) Dove n è la dimensione del problema FUNZIONE T(n) Esprime il tempo necessario affinchè un algoritmo A possa produrre la soluzione di un’istanza di dimensione n 06/14/2021 RITA MIRITELLO 7

Istruzione a costo unitario

Si definisce istruzione a costo unitario un’operazione la cui esecuzione non dipende né dal valore né dal tipo delle variabili, e prende il nome di passo base

  • (^) assegnamento
  • (^) operazioni I/O (da tastiera non da file)
  • (^) operazioni aritmetiche elementari
  • (^) valutazioni di espressioni booleane
  • (^) accesso a elementi di un array 06/14/2021 RITA MIRITELLO 8

Esempio 2

06/14/2021 RITA MIRITELLO 10 K=0; for (j=1;j<=n;j++) {k=k+1; cout<<k+234; } 1 Passo base 1 pb inizializzazione n+1 pb test n pb incremento 1n passo base 1n passo base Totale= 1+1+n+1+n+n+n = 3+4*n

  • (^) Si passa quindi dal numero di passo base alla complessità asintotica
  • (^) individuando il termine di complessità maggiore , cioè il blocco del programma che è maggiormente responsabile del tempo di elaborazione

correttoreonline

esempio.cpp input.txt

#include #include using namespace std; int main() { freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); }

#include #include #include <stdlib.h> #include<time.h> #include <math.h> #include #include using namespace std; int main() { vector V; for (int i=0; i<10; i++) { V. push_back (rand()%100); } sort (V.begin(), V.end()); for (int i=0; i<10; i++) {cout<< V.at(i);} cin>>n: int t= binary_searh (V.begin(), V.end(),n); return 0; }

#include #include #include #include vector v; list l; stack pila; que coda;