1.Facile
Che cos'è la memoizzazione?
- AMemorizzare i risultati delle chiamate di funzione così che le chiamate ripetute ottengano la risposta dalla memoria
- BLiberare la memoria dopo il ritorno di una funzione
- CScrivere commenti accanto a ogni riga di codice
- DConvertire automaticamente la ricorsione in un ciclo equivalente così da non avere bisogno dello stack delle chiamate
2.Facile
Quanta memoria aggiuntiva usa un merge sort standard su array?
- AO(n²)
- BO(1)
- CO(log n)
- DO(n)
3.Facile
Un algoritmo con due cicli annidati, ciascuno eseguito n volte, ha tipicamente quale complessità?
- AO(log n)
- BO(n²)
- CO(n)
- DO(2n)
4.Media
Perché la programmazione dinamica non dà un vero guadagno di velocità per il merge sort?
- ALa programmazione dinamica funziona solo sui problemi su grafi, non sugli array
- BIl merge sort è già O(n)
- CI suoi sottoproblemi non si sovrappongono, quindi non c'è nulla da riutilizzare
- DIl merge sort non ha una struttura ricorsiva
5.Media
Che cosa significa che un problema ha una sottostruttura ottima?
- AUna soluzione ottima può essere costruita da soluzioni ottime dei suoi sottoproblemi
- BOgni sottoproblema ha la stessa dimensione
- CIl problema ha esattamente una soluzione ottima, condivisa da ogni sottoproblema
- DIl problema si può risolvere in tempo costante
6.Media
Quanto spazio di stack usa una semplice funzione fattoriale ricorsiva fact(n) = n × fact(n − 1)?
- AO(log n)
- BO(n²)
- CO(1)
- DO(n)
7.Difficile
Come rileva l'algoritmo di Bellman–Ford un ciclo di peso negativo raggiungibile dalla sorgente?
- ADopo V − 1 turni controlla se qualche arco può ancora essere rilassato
- BConta i cicli con una visita in profondità
- CControlla se qualche arco ha peso negativo
- DEsegue due volte l'algoritmo di Dijkstra e confronta i due risultati delle distanze
8.Difficile
Quale affermazione sulla selezione del k-esimo elemento più piccolo di un array non ordinato è corretta?
- ALa selezione è possibile solo in O(n²)
- BLa selezione richiede sempre Ω(n log n) perché richiede un ordinamento
- CIl quickselect richiede O(n) atteso, e la mediana delle mediane garantisce O(n) nel caso peggiore
- DIl quickselect richiede O(log n) nel caso peggiore, perché ricorre su un solo lato del pivot
Soluzioni
- 1. A · Memorizzare i risultati delle chiamate di funzione così che le chiamate ripetute ottengano la risposta dalla memoria
- 2. D · O(n)
- 3. B · O(n²)
- 4. C · I suoi sottoproblemi non si sovrappongono, quindi non c'è nulla da riutilizzare
- 5. A · Una soluzione ottima può essere costruita da soluzioni ottime dei suoi sottoproblemi
- 6. D · O(n)
- 7. A · Dopo V − 1 turni controlla se qualche arco può ancora essere rilassato
- 8. C · Il quickselect richiede O(n) atteso, e la mediana delle mediane garantisce O(n) nel caso peggiore
Soluzioni complete passo passo: esercitati su questo argomento su examproblems.com.