1.Facile
Quali sono i tre passi di un algoritmo divide et impera?
- ALeggi, calcola, scrivi
- BDividi, risolvi (impera), combina
- COrdina, cerca, restituisci
- DIndovina, verifica, ripeti
2.Facile
Un problema si dice di solito trattabile se:
- ANon ha soluzione
- BPuò essere risolto in tempo polinomiale
- CPuò essere risolto solo provando ogni possibilità
- DPuò essere risolto in tempo costante
3.Facile
Quale di queste cresce più lentamente quando n diventa grande?
- AO(n)
- BO(n log n)
- CO(log n)
- DO(n²)
4.Media
Qual è la soluzione della ricorrenza T(n) = T(n − 1) + O(n)?
- AO(n log n)
- BO(n²)
- CO(2ⁿ)
- DO(n)
5.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
- BL'insertion sort ha poco overhead ed è veloce su input piccoli o quasi ordinati
- CL'insertion sort usa meno memoria di qualsiasi altro algoritmo di ordinamento per input grandi
- DGli algoritmi ricorsivi non gestiscono array con meno di 10 elementi
6.Media
Qual è la complessità temporale dell'algoritmo di Bellman–Ford su un grafo con V vertici ed E archi?
- AO(V³ × E)
- BO(V × E)
- CO(V + E)
- DO(E log V)
7.Difficile
Qual è il costo ammortizzato dell'incremento di un contatore binario, dato che un incremento può invertire molti bit?
- AO(n) per incremento
- BO(n log n) per incremento
- CO(1) per incremento
- DO(log n) per incremento
8.Difficile
Qual è la complessità temporale di: for i = 1 to n: for (j = i; j ≤ n; j = j + i) lavoro O(1)?
- AO(n)
- BO(n log n)
- CO(n²)
- DO(n √n)
Soluzioni
- 1. B · Dividi, risolvi (impera), combina
- 2. B · Può essere risolto in tempo polinomiale
- 3. C · O(log n)
- 4. B · O(n²)
- 5. B · L'insertion sort ha poco overhead ed è veloce su input piccoli o quasi ordinati
- 6. B · O(V × E)
- 7. C · O(1) per incremento
- 8. B · O(n log n)
Soluzioni complete passo passo: esercitati su questo argomento su examproblems.com.