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

Un algoritmo O(n) impiega 3 secondi per n = 1 milione. Circa quanto impiega per n = 2 milioni?

  1. A12 secondi
  2. B9 secondi
  3. C3 secondi
  4. D6 secondi
2.Facile

Quale algoritmo di ordinamento sceglie un pivot e partiziona l'array in elementi minori e maggiori?

  1. AInsertion sort
  2. BMerge sort
  3. CBubble sort
  4. DQuicksort
3.Facile

La complessità spaziale misura:

  1. ALe dimensioni fisiche del computer
  2. BIl numero di righe di codice
  3. CLa quantità di memoria di cui un algoritmo ha bisogno al crescere dell'input
  4. DLo spazio su disco del file del programma una volta compilato
4.Media

La visita in ampiezza (BFS) su un grafo non pesato trova:

  1. AL'albero ricoprente minimo
  2. BUn ordinamento topologico in tutti i grafi
  3. CI cammini minimi in numero di archi dal nodo di partenza
  4. DI cammini minimi in grafi che contengono archi con peso negativo
5.Media

Qual è la complessità temporale del calcolo dell'n-esimo numero di Fibonacci con una tabella bottom-up?

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

Ordini una volta un array di n elementi e poi rispondi a k query di appartenenza con la ricerca binaria. Qual è il costo totale?

  1. AO(n log n + k log n)
  2. BO(nk)
  3. CO(k n log n)
  4. DO(n + k)
7.Difficile

L'algoritmo di programmazione dinamica di Held–Karp risolve esattamente il problema del commesso viaggiatore. Qual è il suo tempo di esecuzione per n città?

  1. AO(2n²)
  2. BO(n³)
  3. CO(n² 2ⁿ)
  4. DO(n!)
8.Difficile

Il problema dello zaino 0/1 risolto con la programmazione dinamica richiede tempo O(nW). Perché si dice pseudo-polinomiale?

  1. APerché n è sempre piccolo
  2. BPerché funziona solo per W = 0
  3. CPerché l'algoritmo è randomizzato e il suo tempo di esecuzione varia a ogni input
  4. DW è un numero, quindi il tempo è esponenziale nel numero di bit usati per scrivere W

Soluzioni

  1. 1. D · 6 secondi
  2. 2. D · Quicksort
  3. 3. C · La quantità di memoria di cui un algoritmo ha bisogno al crescere dell'input
  4. 4. C · I cammini minimi in numero di archi dal nodo di partenza
  5. 5. A · O(n)
  6. 6. A · O(n log n + k log n)
  7. 7. C · O(n² 2ⁿ)
  8. 8. D · W è un numero, quindi il tempo è esponenziale nel numero di bit usati per scrivere W

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