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'è un algoritmo a forza bruta?

  1. AUn algoritmo che prova tutte le possibili soluzioni candidate
  2. BUn algoritmo che tira a indovinare una risposta a caso
  3. CUn algoritmo che gira su molti processori
  4. DUn algoritmo che usa sempre la ricorsione
2.Facile

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

  1. ADividi, risolvi (impera), combina
  2. BOrdina, cerca, restituisci
  3. CIndovina, verifica, ripeti
  4. DLeggi, calcola, scrivi
3.Facile

Che cos'è la memoizzazione?

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

Qual è la complessità temporale della moltiplicazione di due matrici n × n con il triplo ciclo standard?

  1. AO(n)
  2. BO(n²)
  3. CO(n³)
  4. DO(n² log n)
5.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(k n log n)
  3. CO(nk)
  4. DO(n + k)
6.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à più breve
  2. BScegliere l'attività che inizia prima
  3. CScegliere l'attività che termina prima, poi ripetere con quelle compatibili
  4. DScegliere per prima l'attività con meno sovrapposizioni, poi ripetere con quelle compatibili
7.Difficile

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

  1. ALe chiavi devono prima essere ordinate
  2. BMolte chiavi possono collidere nello stesso bucket
  3. CLe funzioni hash sono lente
  4. DGli array hanno accesso O(n)
8.Difficile

Per dimostrare che un nuovo problema X è NP-difficile, che cosa devi fare?

  1. ARidurre in tempo polinomiale un problema NP-difficile noto a X
  2. BRidurre in tempo polinomiale X a un problema NP-difficile noto
  3. CDimostrare che X non ha un algoritmo polinomiale per input piccoli
  4. DDimostrare che X si può verificare in tempo polinomiale

Soluzioni

  1. 1. A · Un algoritmo che prova tutte le possibili soluzioni candidate
  2. 2. A · Dividi, risolvi (impera), combina
  3. 3. B · Memorizzare i risultati delle chiamate di funzione così che le chiamate ripetute ottengano la risposta dalla memoria
  4. 4. C · O(n³)
  5. 5. A · O(n log n + k log n)
  6. 6. C · Scegliere l'attività che termina prima, poi ripetere con quelle compatibili
  7. 7. B · Molte chiavi possono collidere nello stesso bucket
  8. 8. A · Ridurre in tempo polinomiale un problema NP-difficile noto a X

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