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

Qual è la complessità temporale della ricerca binaria in un array ordinato?

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

Che cosa significa f(n) = Θ(g(n))?

  1. Af cresce strettamente più lentamente di g
  2. Bf cresce allo stesso ritmo di g, limitata superiormente e inferiormente da multipli costanti di g
  3. Cf è sempre minore di g per ogni n, quindi g la limita superiormente ma mai inferiormente
  4. Df cresce strettamente più velocemente di g
3.Facile

Qual è la complessità temporale della ricerca lineare in un array non ordinato di n elementi (caso peggiore)?

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

Circa quanti confronti richiede nel caso peggiore la ricerca binaria su un array ordinato di 1,000,000 di elementi?

  1. ACirca 100
  2. BCirca 20
  3. CCirca 1,000
  4. DCirca 500,000
5.Media

È corretto dire che un algoritmo O(n²) è anche O(n³)?

  1. ANo, perché per n grande n³ è minore di n²
  2. BNo, perché l'O grande deve indicare sempre l'esatto tasso di crescita della funzione
  3. CSì, perché l'O grande è un limite superiore e n² non cresce più velocemente di n³
  4. DSì, ma solo se n è minore di 100
6.Media

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

  1. AO(2ⁿ)
  2. BO(n)
  3. CO(n²)
  4. DO(log n)
7.Difficile

Perché l'algoritmo di Dijkstra può dare risultati errati quando alcuni pesi degli archi sono negativi?

  1. AI numeri negativi non si possono memorizzare in una coda di priorità
  2. BEntra in un ciclo infinito a ogni arco negativo
  3. CFunziona solo sui grafi non orientati
  4. DUn vertice viene considerato definitivo quando è estratto, ma un arco negativo successivo potrebbe ancora dargli un cammino più breve
8.Difficile

L'algoritmo di Strassen moltiplica matrici usando 7 invece di 8 moltiplicazioni ricorsive di blocchi di metà dimensione. Qual è il suo tempo di esecuzione?

  1. AΘ(n³)
  2. BΘ(n² log n)
  3. CΘ(nlog₂ 7), circa n2,81
  4. DΘ(n2)

Soluzioni

  1. 1. C · O(log n)
  2. 2. B · f cresce allo stesso ritmo di g, limitata superiormente e inferiormente da multipli costanti di g
  3. 3. B · O(n)
  4. 4. B · Circa 20
  5. 5. C · Sì, perché l'O grande è un limite superiore e n² non cresce più velocemente di n³
  6. 6. B · O(n)
  7. 7. D · Un vertice viene considerato definitivo quando è estratto, ma un arco negativo successivo potrebbe ancora dargli un cammino più breve
  8. 8. C · Θ(nlog₂ 7), circa n2,81

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