Scheda di esercizi di Algoritmi e complessità con soluzioni

Scheda di esercizi di Algoritmi e complessità gratuita e stampabile: 8 esercizi dal livello facile a quello d’esame, con le soluzioni. Stampala o salvala come PDF.

Per i docenti: gratuita da stampare, copiare e usare in classe. Ogni nuova scheda ha nuovi valori e le sue soluzioni. Un link a ExamProblems nella pagina del corso è molto apprezzato.

Nome: ____________________   Data: ____________

1.Facile

Quali sono i tre passi di un algoritmo divide et impera?

  1. ALeggi, calcola, scrivi
  2. BDividi, risolvi (impera), combina
  3. COrdina, cerca, restituisci
  4. DIndovina, verifica, ripeti
2.Facile

Un problema si dice di solito trattabile se:

  1. ANon ha soluzione
  2. BPuò essere risolto in tempo polinomiale
  3. CPuò essere risolto solo provando ogni possibilità
  4. DPuò essere risolto in tempo costante
3.Facile

Quale di queste cresce più lentamente quando n diventa grande?

  1. AO(n)
  2. BO(n log n)
  3. CO(log n)
  4. DO(n²)
4.Media

Qual è la soluzione della ricorrenza T(n) = T(n − 1) + O(n)?

  1. AO(n log n)
  2. BO(n²)
  3. CO(2ⁿ)
  4. DO(n)
5.Media

Perché molte routine di ordinamento delle librerie passano all'insertion sort per sottoarray molto piccoli?

  1. AL'insertion sort è O(n log n) nel caso peggiore
  2. BL'insertion sort ha poco overhead ed è veloce su input piccoli o quasi ordinati
  3. CL'insertion sort usa meno memoria di qualsiasi altro algoritmo di ordinamento per input grandi
  4. 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?

  1. AO(V³ × E)
  2. BO(V × E)
  3. CO(V + E)
  4. DO(E log V)
7.Difficile

Qual è il costo ammortizzato dell'incremento di un contatore binario, dato che un incremento può invertire molti bit?

  1. AO(n) per incremento
  2. BO(n log n) per incremento
  3. CO(1) per incremento
  4. 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)?

  1. AO(n)
  2. BO(n log n)
  3. CO(n²)
  4. DO(n √n)

Soluzioni

  1. 1. B · Dividi, risolvi (impera), combina
  2. 2. B · Può essere risolto in tempo polinomiale
  3. 3. C · O(log n)
  4. 4. B · O(n²)
  5. 5. B · L'insertion sort ha poco overhead ed è veloce su input piccoli o quasi ordinati
  6. 6. B · O(V × E)
  7. 7. C · O(1) per incremento
  8. 8. B · O(n log n)

Soluzioni complete passo passo: esercitati su questo argomento su examproblems.com.