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

Accedere a un elemento di un array tramite indice richiede:

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

Qual è la complessità temporale nel caso migliore dell'insertion sort, su un array già ordinato?

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

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

  1. AOrdina, cerca, restituisci
  2. BDividi, risolvi (impera), combina
  3. CLeggi, calcola, scrivi
  4. DIndovina, verifica, ripeti
4.Media

Un algoritmo greedy (goloso):

  1. AProva ogni soluzione possibile
  2. BCompie la scelta localmente migliore a ogni passo
  3. CUsa solo la ricorsione
  4. DFornisce sempre la soluzione ottima
5.Media

Quale affermazione su una funzione ricorsiva senza un caso base raggiungibile è corretta?

  1. ARestituisce automaticamente 0
  2. BIl compilatore la trasforma sempre in un ciclo che termina in modo sicuro
  3. CViene eseguita in tempo O(1)
  4. DContinua a chiamare se stessa finché lo stack delle chiamate va in overflow
6.Media

La complessità temporale del Fibonacci ricorsivo ingenuo (fib(n) = fib(n−1) + fib(n−2)) è:

  1. ALineare
  2. BCostante
  3. CLogaritmica
  4. DEsponenziale
7.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Θ(nlog₂ 7), circa n2,81
  2. BΘ(n2)
  3. CΘ(n² log n)
  4. DΘ(n³)
8.Difficile

Quale tecnica garantisce al quicksort un tempo di esecuzione atteso O(n log n) su qualsiasi input?

  1. AUsare la ricorsione solo sul lato sinistro
  2. BScegliere il pivot in modo uniformemente casuale
  3. COrdinare l'input prima di eseguire il quicksort
  4. DScegliere sempre il primo elemento

Soluzioni

  1. 1. A · O(1)
  2. 2. D · O(n)
  3. 3. B · Dividi, risolvi (impera), combina
  4. 4. B · Compie la scelta localmente migliore a ogni passo
  5. 5. D · Continua a chiamare se stessa finché lo stack delle chiamate va in overflow
  6. 6. D · Esponenziale
  7. 7. A · Θ(nlog₂ 7), circa n2,81
  8. 8. B · Scegliere il pivot in modo uniformemente casuale

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