[Risolto][Algoritmi] calcolo tempo esecuzione funzione

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
jigen45
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 717
Iscrizione: lunedì 31 dicembre 2012, 18:59
Desktop: ubuntu

[Risolto][Algoritmi] calcolo tempo esecuzione funzione

Messaggio da jigen45 »

Ragazzi, supponendo che la funzione test(x) abbia tempo di esecuzione O(xlgx), devo calcolare il tempo della funzione fun

Codice: Seleziona tutto

fun(intero n)
    i = 1
    while i <= n do
        test(i)
        i = i * 2
ora il ciclo viene eseguito O(lgn) volte, test(i) O(i*lg(i)) ho maggiorato quest'ultimo con O(nlgn) quindi come tempo totale F(n) ho O(nlgn*lgn) però non mi sembra scritta bene.. che ne dite?
Ultima modifica di jigen45 il mercoledì 3 dicembre 2014, 19:20, modificato 1 volta in totale.
Avatar utente
ienaplinsky
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 954
Iscrizione: giovedì 21 gennaio 2010, 9:56
Località: Napoli

Re: [Algoritmi] calcolo tempo esecuzione funzione

Messaggio da ienaplinsky »

no no fai attenzione che il risultato è sbagliato

l algoritmo impiega questo tempo:

sommatoria per i da 1 a log n di 2^i * log 2^i = sommatoria per i da 1 a log n di 2^i * i che al momento non ricordo come si risolve xd
se mi viene in mente te lo posto
jigen45
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 717
Iscrizione: lunedì 31 dicembre 2012, 18:59
Desktop: ubuntu

Re: [Algoritmi] calcolo tempo esecuzione funzione

Messaggio da jigen45 »

grazie mille per la risposta ienaplinsky!!!!! :D
Avatar utente
ienaplinsky
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 954
Iscrizione: giovedì 21 gennaio 2010, 9:56
Località: Napoli

Re: [Algoritmi] calcolo tempo esecuzione funzione

Messaggio da ienaplinsky »

aspetta che ho trovato la soluzione ringraziamo google xd
https://answers.yahoo.com/question/inde ... 252AA3Y4kh

stando a quello che si dice qua (e mi sembra esatto anche se le serie geometriche non le tocco da parecchio) la sommatoria è uguale a

(log n - 1) * 2 ^(log n + 1) + 2 che facendo i conti è = a 2 n log n - 2 n + 2 e si può dimostrare che è un O(nlogn)
considerando che il log è in base 2
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti