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

Quale algoritmo di ordinamento scambia ripetutamente elementi adiacenti che sono nell'ordine sbagliato?

  1. ABubble sort
  2. BHeap sort
  3. CQuicksort
  4. DMerge sort
2.Facile

Che cos'è la memoizzazione?

  1. AConvertire automaticamente la ricorsione in un ciclo equivalente così da non avere bisogno dello stack delle chiamate
  2. BScrivere commenti accanto a ogni riga di codice
  3. CLiberare la memoria dopo il ritorno di una funzione
  4. DMemorizzare i risultati delle chiamate di funzione così che le chiamate ripetute ottengano la risposta dalla memoria
3.Facile

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

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

La ricorrenza T(n) = 2T(n/2) + O(n) ha come soluzione:

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

Qual è la complessità temporale di: for i = 1 to n: for j = 1 to i: lavoro O(1)?

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

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

  1. AGli algoritmi ricorsivi non gestiscono array con meno di 10 elementi
  2. BL'insertion sort usa meno memoria di qualsiasi altro algoritmo di ordinamento per input grandi
  3. CL'insertion sort è O(n log n) nel caso peggiore
  4. DL'insertion sort ha poco overhead ed è veloce su input piccoli o quasi ordinati
7.Difficile

Un problema è NP-completo se:

  1. AAppartiene a NP e ogni problema NP si riduce a esso in tempo polinomiale
  2. BÈ impossibile da risolvere
  3. CÈ risolvibile in tempo polinomiale
  4. DÈ al di fuori di NP ma più difficile di tutti i problemi NP, come il problema della fermata
8.Difficile

Qual è il tempo di esecuzione dell'algoritmo di Dijkstra con uno heap binario su un grafo con V vertici ed E archi?

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

Soluzioni

  1. 1. A · Bubble sort
  2. 2. D · Memorizzare i risultati delle chiamate di funzione così che le chiamate ripetute ottengano la risposta dalla memoria
  3. 3. C · O(log n)
  4. 4. D · O(n log n)
  5. 5. C · O(n²)
  6. 6. D · L'insertion sort ha poco overhead ed è veloce su input piccoli o quasi ordinati
  7. 7. A · Appartiene a NP e ogni problema NP si riduce a esso in tempo polinomiale
  8. 8. A · O((V + E) log V)

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