|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
|
calcolo della complessità temporale
ciao raga.
mi servirebbe calcolare la complessità temporale di un mio algoritmo; devo vedere se ha complessità minore della ricerca binaria che è Log(n). come si fa?? |
![]() |
![]() |
![]() |
#2 | |
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
|
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2004
Città: Parma
Messaggi: 1037
|
vedi il tempo impiegato dal tuo e da quello che prendi con riferimento...
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
|
Quote:
|
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Dec 2004
Città: Parma
Messaggi: 1037
|
per quanto mi ricordi dalle superiori la complessità computazionale di un algoritmo si misura osservando come cresce il numero di passi (iterazioni) da fare al crescere lineare del numero di elementi da trattare...quindi 1 elemento->n1 passi, 100 elementi->n2 passi, 1000 elementi-> n3 passi...e vedi la proporzione (funzione) che c'è tra elementi (x) e passi (y).
__________________
Ho fatto l'amore con control.. domani provo anche con ALT-CANC ![]() La mia Fiesta tiddissiaisensescion fa ![]() Ultima modifica di mpattera : 12-12-2005 alle 15:17. |
![]() |
![]() |
![]() |
#7 | |
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
|
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
|
Quote:
![]() la mia?? |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 2004
Città: Parma
Messaggi: 1037
|
nel come calcolare la complex del suo algoritmo credo...
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
|
Quote:
cioè di come ricavare la formula matematica. come hai detto te ogni passo dell'algoritmo costa tempo e infatti >> prova Elapsed time is 0.000000 seconds. 15365 Elapsed time is 0.000000 seconds. 2122 il 1° è la ricerca binaria. il 2° è la mia ricerca. posto i due algoritmi binaria Codice:
passi=0; for h=1:n_t pos(h) = -1; p=1; u=n-1; passi=passi+1; while (p<=u && pos(h)==-1) passi=passi+1; half=round((p+u)/2); if (x(half)==t(h)) pos(h)=half; passi=passi+1; else if (x(half)<t(h)) p=half+1; passi=passi+1; else passi=passi+1; u=half-1; end end end if (pos(h)==-1) pos(h)=u; passi=passi+1; end end Codice:
count=2;passi=0; for i=1:n_t passi=passi+1; while t(i)>=x(count) & count<n count=count+1; passi=passi+1; end if count<=n passi=passi+1; ind(i)=count-1; end end |
|
![]() |
![]() |
![]() |
#11 | |
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
ti faccio un esempio: supponi di avere un algoritmo che stampa a video gli elementi di un vettore di n elementi in maniera sequenziale. la dimensione del problema è n. l'algoritmo per stampare gli n elementi fa n passi,(per passo si può intendere l'operazione di stampa a video o di lettura dell'elemento). la complessità dell'algoritmo è n(per un vettore di n elementi fa n passi),in notazione asintotica si scrive O(n),cioè il tempo impiegato nell'esecuzione dipende linearmente dal numero di elementi che contiene il vettore. |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
|
come vedi dagli algoritmi pietro, si effettuano meno passi con la mia routine.
|
![]() |
![]() |
![]() |
#13 |
Member
Iscritto dal: Aug 2004
Messaggi: 156
|
nessun algoritmo di ricerca può fare meglio di O(log(n))
|
![]() |
![]() |
![]() |
#14 | |
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#15 | |
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
|
Quote:
![]() cioè per esempio nel while della mia ricerca come faccio a calcolare le somme che si effettuano?? |
|
![]() |
![]() |
![]() |
#17 | |
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Jul 2004
Città: Napoli
Messaggi: 2029
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#19 |
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
puoi supporre che ogni iterazione sia un passo...... è anche intuitivo il calcolo.
ma sei sicuro che l'algoritmo di ricerca binaria sia scritto bene? il tempo di esecuzione minore non è per forza indice di complessità minore però. O(logn) è valida per valori di n molto grandi,può anche darsi che al crescere di n l'algoritmo di ricerca binaria superi il tuo! perciò devi fare il calcolo in maniera rigorosa,in prima approssimazione prendi come riferimento il numero di iterazioni che fanno i due algoritmi. |
![]() |
![]() |
![]() |
#20 | |
Member
Iscritto dal: Nov 2005
Messaggi: 154
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:51.