1.Facile
Quale di questi tempi di esecuzione è polinomiale?
- AO(2ⁿ)
- BO(n!)
- CO(n³)
- DO(nⁿ)
2.Facile
Quale di queste cresce più lentamente quando n diventa grande?
- AO(log n)
- BO(n)
- CO(n²)
- DO(n log n)
3.Facile
La complessità spaziale misura:
- ALa quantità di memoria di cui un algoritmo ha bisogno al crescere dell'input
- BIl numero di righe di codice
- CLe dimensioni fisiche del computer
- DLo spazio su disco del file del programma una volta compilato
4.Media
Perché molte routine di ordinamento delle librerie passano all'insertion sort per sottoarray molto piccoli?
- AL'insertion sort è O(n log n) nel caso peggiore
- BGli algoritmi ricorsivi non gestiscono array con meno di 10 elementi
- CL'insertion sort ha poco overhead ed è veloce su input piccoli o quasi ordinati
- DL'insertion sort usa meno memoria di qualsiasi altro algoritmo di ordinamento per input grandi
5.Media
La complessità temporale del Fibonacci ricorsivo ingenuo (fib(n) = fib(n−1) + fib(n−2)) è:
- ALineare
- BCostante
- CEsponenziale
- DLogaritmica
6.Media
Quale affermazione su una funzione ricorsiva senza un caso base raggiungibile è corretta?
- AContinua a chiamare se stessa finché lo stack delle chiamate va in overflow
- BIl compilatore la trasforma sempre in un ciclo che termina in modo sicuro
- CViene eseguita in tempo O(1)
- DRestituisce automaticamente 0
7.Difficile
Perché una ricerca in una tabella hash è in media O(1) ma nel caso peggiore O(n)?
- ALe chiavi devono prima essere ordinate
- BGli array hanno accesso O(n)
- CMolte chiavi possono collidere nello stesso bucket
- DLe funzioni hash sono lente
8.Difficile
Perché qualsiasi ricerca basata su confronti in un array ordinato richiede Ω(log n) confronti nel caso peggiore?
- AUn albero di decisione con n esiti possibili deve avere profondità almeno log₂ n
- BOgni elemento deve essere confrontato almeno una volta
- COgni confronto richiede un tempo logaritmico
- DLa ricerca binaria è l'unico algoritmo possibile e richiede log₂ n confronti
Soluzioni
- 1. C · O(n³)
- 2. A · O(log n)
- 3. A · La quantità di memoria di cui un algoritmo ha bisogno al crescere dell'input
- 4. C · L'insertion sort ha poco overhead ed è veloce su input piccoli o quasi ordinati
- 5. C · Esponenziale
- 6. A · Continua a chiamare se stessa finché lo stack delle chiamate va in overflow
- 7. C · Molte chiavi possono collidere nello stesso bucket
- 8. A · Un albero di decisione con n esiti possibili deve avere profondità almeno log₂ n
Soluzioni complete passo passo: esercitati su questo argomento su examproblems.com.