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

Che cos'è la ricorsione?

  1. AUna funzione che chiama se stessa su input più piccoli
  2. BUn ciclo che non termina mai
  3. CUn metodo di ordinamento
  4. DUn tipo di struttura dati
2.Facile

Che cosa significa che un'operazione ha tempo O(1)?

  1. AElabora esattamente un elemento per ogni secondo di tempo di esecuzione
  2. BPuò essere eseguita una sola volta
  3. CRichiede sempre esattamente un secondo
  4. DIl suo tempo di esecuzione non cresce con la dimensione dell'input
3.Facile

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

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

In un array ordinato cerchi due elementi la cui somma sia un valore dato muovendo un puntatore da ciascuna estremità verso l'interno. Qual è la complessità temporale?

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

Nel problema della selezione di attività, quale regola greedy dà sempre il numero massimo di attività non sovrapposte?

  1. AScegliere per prima l'attività con meno sovrapposizioni, poi ripetere con quelle compatibili
  2. BScegliere l'attività che inizia prima
  3. CScegliere per prima l'attività più breve
  4. DScegliere l'attività che termina prima, poi ripetere con quelle compatibili
6.Media

La programmazione dinamica è utile quando un problema presenta:

  1. ANessun sottoproblema, quindi si risolve in un solo passo
  2. BUn unico ciclo
  3. CSolo input casuali
  4. DSottoproblemi sovrapposti e sottostruttura ottima
7.Difficile

Perché una ricerca in una tabella hash è in media O(1) ma nel caso peggiore O(n)?

  1. AGli array hanno accesso O(n)
  2. BLe funzioni hash sono lente
  3. CMolte chiavi possono collidere nello stesso bucket
  4. DLe chiavi devono prima essere ordinate
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² log n)
  2. BΘ(nlog₂ 7), circa n2,81
  3. CΘ(n³)
  4. DΘ(n2)

Soluzioni

  1. 1. A · Una funzione che chiama se stessa su input più piccoli
  2. 2. D · Il suo tempo di esecuzione non cresce con la dimensione dell'input
  3. 3. C · O(log n)
  4. 4. A · O(n)
  5. 5. D · Scegliere l'attività che termina prima, poi ripetere con quelle compatibili
  6. 6. D · Sottoproblemi sovrapposti e sottostruttura ottima
  7. 7. C · Molte chiavi possono collidere nello stesso bucket
  8. 8. B · Θ(nlog₂ 7), circa n2,81

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