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 nel caso migliore dell'insertion sort, su un array già ordinato?

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

Che cosa richiede la ricerca binaria al suo input?

  1. AL'array deve contenere solo numeri positivi
  2. BL'array deve essere ordinato
  3. CL'array non deve avere più di 1000 elementi
  4. DLa lunghezza dell'array deve essere una potenza di due
3.Facile

Come funziona il selection sort?

  1. AInserisce ogni elemento in una parte ordinata crescente spostando gli altri
  2. BDivide l'array a metà e le fonde
  3. CScambia ripetutamente elementi adiacenti che sono nell'ordine sbagliato
  4. DTrova ripetutamente il minimo della parte non ordinata e lo scambia portandolo in testa
4.Media

Come costruisce l'algoritmo di Prim un albero ricoprente minimo?

  1. AOrdina tutti gli archi per peso e aggiunge ciascuno di essi a meno che non formi un ciclo nella foresta
  2. BRimuove l'arco più costoso finché non restano cicli
  3. CEsegue una visita in ampiezza e conserva l'albero BFS
  4. DFa crescere un unico albero da un vertice iniziale, aggiungendo l'arco più economico che esce dall'albero
5.Media

Quale algoritmo trova i cammini minimi da una sorgente in un grafo con pesi degli archi non negativi?

  1. AVisita in profondità (DFS)
  2. BAlgoritmo di Kruskal
  3. CBellman-Ford è necessario in tutti i casi
  4. DAlgoritmo di Dijkstra
6.Media

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

  1. AEsponenziale
  2. BCostante
  3. CLogaritmica
  4. DLineare
7.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
8.Difficile

Quale affermazione su P e NP è corretta?

  1. ANP significa «non polinomiale»
  2. BLe soluzioni dei problemi NP non possono essere verificate rapidamente
  3. CÈ stato dimostrato che P ≠ NP
  4. DOgni problema in P appartiene anche a NP

Soluzioni

  1. 1. B · O(n)
  2. 2. B · L'array deve essere ordinato
  3. 3. D · Trova ripetutamente il minimo della parte non ordinata e lo scambia portandolo in testa
  4. 4. D · Fa crescere un unico albero da un vertice iniziale, aggiungendo l'arco più economico che esce dall'albero
  5. 5. D · Algoritmo di Dijkstra
  6. 6. A · Esponenziale
  7. 7. D · W è un numero, quindi il tempo è esponenziale nel numero di bit usati per scrivere W
  8. 8. D · Ogni problema in P appartiene anche a NP

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