



Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Esercizi Algoritmi pt.1, vasta raccolta di esercizi di algoritmi.
Tipologia: Esercizi
1 / 6
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




Progettazione di Algoritmi Anno Accademico 2018–
Ugo Vaccaro
Ω(g(n)), oppure valgono entrambe le condizioni (nel cui caso occorre indicare che f (n) =
Θ(g(n)). Non occorre giustificare le risposte.
(a) f (n) = n −
n, g(n) = 5n
(b) f (n) = 10n log n, g(n) = (n/2) 3
n
(c) f (n) = 5n + 10
n, g(n) = n − 10
n
(d) f (n) = n 3 / 2 − n, g(n) = 8n log n
(e) f (n) = 7 log n, g(n) = log n 3
(f) f (n) =
log n, g(n) = log
n
(g) f (n) = 6n 4
n, g(n) = n 4 − 4 n log n 2 − 8
n
(h) f (n) = n
(i) f (n) = 7 n , g(n) = 8 n
(j) f (n) = 3 log 2 n , g(n) = 2 log 3 n
(k) f (n) = n 4 n , g(n) = n!
(l) f (n) = 3 n+ , g(n) = 3 n− 3
(m) f (n) = n 5 n , g(n) = 6 n
(n) f (n) = n 2 − n 3 / 2 , g(n) = n 2 − n 2 / 3
(o) f (n) = log n 5 , g(n) = log
4 n
(a) 5n
n log n 2
(b) (n + 2) n = O( n /n).
n log 5 n,
n log n, log n 5 , n log n , n 2 log n 2 , n n , n 4 , (log n) n , 10
n, n log
n, log 2 n, n 3
n, 10 log log n,
3 log n 2 , n!
ordinarle scrivendole da sinistra a destra in modo tale che la funzione f (n) venga posta a
sinistra della funzione g(n) se e solo se vale che f (n) = O(g(n)). Ad esempio, se le funzioni
fossero 3n 2 , 3 n , n log n,
n, log n, occorrerebbero scriverle nell’ordine log n,
n, n log n, 3 n 2 , 3 n .
n−
n, log(n!/ 2 n ) 4 , log log n 3 , n 2 +log n 2 , 3 n
n , n log 2 n , n!, 4 n 2 +n 6
n, 10 n+3 log log n, log log n,
5 n+2 log n+
n, log(n!), 5 · 2 n , n log(n+2) 3 , 5 n 2 +n log n+n 3 / 2 , 4 log n , n log(n+2) 3 , 4 n , n log
n,
partizionarle in insiemi disgiunti A 1 , A 2 ,... tali che entrambe le seguenti condizioni valgano
c ∈ R+ per cui f (n) ≤ c · g(n), per ogni n > 1.
(a) f (n) = 3n 2
(b) f (n) = 2
n log n + 1, g(n) = n + n^2
(c) f (n) = n 3
(d) f (n) = n
n + 4n 2 , g(n) = n 2
(e) f (n) = 12n + 3, g(n) = n − 7
(f) f (n) = n 2 − n + 1, g(n) = n 2 / 10
(g) f (n) = 3n + 1, g(n) = (2n 2 − 10 n)/ 6
(h) f (n) = 5
n log n − 1 , g(n) = n −
n
e quali sono false. E necessario provare le affermazioni che si ritengono vere, non `´ e necessario
provare le affermazioni che si ritengono false.
(a) g(n) = Ω(n log n)
(b) g(n) = Θ(n 5 )
(c) g(n) = O(n 10 )
(d) g(n) = Ω(n 4 )
quali sono false. E necessario provare le affermazioni che si ritengono vere, non `´ e necessario
provare le affermazioni che si ritengono false.
(a) g(n) = O(n log n)
(b) g(n) = Ω(n 2 )
(c) g(n) = Θ(n 3 )
(d) g(n) = O(n 4 )
false, dando la dimostrazione di ogni affermazione.
h : n ∈ N 7 → h(n) ∈ R+, provare che se f (n) = O(g(n)) e g(n) = O(h(n)), allora vale che
f (n) = O(h(n)), usando la definione di O.
h : n ∈ N 7 → h(n) ∈ R+, provare che se f (n) = Ω(g(n)) e g(n) = Ω(h(n)), allora vale che
f (n) = Ω(h(n)), usando la definione di Ω.
Ricordiamo il seguente risultato per la risoluzione delle pi`u comuni equazioni di ricorrenza:
Teorema. La soluzione alla ricorrenza
T (n) =
d se n ≤ 1
aT (n/c) + bnk^ altrimenti
per a, c, b, k costanti, `e
T (n) =
O(n k ) se a < c k
O(n k log n) se a = c k
O(n logc a ) se a > c k
Nel caso in cui non si voglia (o non si possa) applicare il risultato di sopra, gli esercizi che
seguono si possono risolvere iterando la equazione di ricorrenza che descrive la complessit`a di tempo
dell’algoritmo e deducendo la soluzione.
Algoritmo B(n)
}
}
Si derivi una equazione di ricorrenza che descrive la complessit`a di Algoritmo B(n), e la si
risolva, usando il metodo di iterazione.
Algoritmo(n)
}
}
Si esprima la complessit´a di Algoritmo(n) mediante una equazione di ricorrenza e se ne dia
una soluzione in termini della notazione O.
Algoritmo S(n)
}
}
Si derivi una equazione di ricorrenza che descrive la complessit`a di Algoritmo S(n), e la si
risolva in termini della notazione O.
Algoritmo S(n)
}
n) {
}
Si derivi una equazione di ricorrenza che descrive la complessit`a di Algoritmo S(n), e la si
risolva in termini della notazione O.