• Non ci sono risultati.

Esame del 22 settembre 2003

N/A
N/A
Protected

Academic year: 2021

Condividi "Esame del 22 settembre 2003"

Copied!
3
0
0

Testo completo

(1)

1

Algoritmi e Programmazione Avanzata

Esame del 22 settembre 2003

Parte I (teoria)

Tempo: 45 minuti, NON è possibile consultare libri o appunti.

Esercizio 1 (2 punti)

Sia data la sequenza di interi, supposta memorizzata in un vettore:

13 40 38 22 26 39 12 29 67 20 53 31

Si esegua sul vettore l’algoritmo di Insertion Sort, riportando i passaggi fondamentali.

Esercizio 2 (2 punti)

Si effettuino secondo l’ordine specificato le seguenti operazioni su un BST supposto inizialmente vuoto (+ inserzione, - cancellazione):

+2 +13 +21 +5 +7 +9 +6 +10 +14 -21 -13 + 17 -6 Esercizio 3 (2 punti)

Sia data la sequenza di chiavi SETTEMBRE, dove ciascun carattere rappresenta una chiave ed è individuato dal suo ordine progressivo nell’alfabeto (A=1, ..., Z=26).

Si inserisca detta sequenza in una tabella di hash di dimensione 13 utilizzando il linear chaining.

Esercizio 4

Sia dato il seguente grafo orientato:

B C

D E

A

F

G

H I

J K

L M

Punto a (2 punti)

Si disegnino la matrice di adiacenza e la lista di adiacenza del grafo.

(2)

2 Punto b (3 punti)

Si visiti il grafo in profondità ed in ampiezza, considerando A come vertice di partenza. Si indichi la sequenza di visita dei vertici nei due casi. Qualora necessario, si trattino i vertici secondo l’ordine alfabetico.

Esercizio 5 (4 punti)

Sia dato il seguente grafo orientato pesato. Si determinino i valori di tutti i cammini minimi che collegano il vertice A con ogni altro vertice mediante l’algoritmo di Dijkstra. Si assuma, qualora necessario, un ordine alfabetico per i vertici e gli archi.

A

H

G

I C F

E

B

D

3

2

2 3

5

2 3

4

1 5

3 3 2

6 1

7

1

J

3

3

(3)

3

Parte II (programmazione)

Tempo: 60 minuti, è possibile consultare libri o appunti.

Si scriva un programma C che calcola l’accoppiamento ottimo per 10 giocatori di bridge. Ogni persona ha espresso una serie di preferenze, elencando in ordine di preferenza decrescente gli altri giocatori. Il programma trova l'assegnazione che rispetta nel modo complessivamente migliore le preferenze espresse.

Il programma esegue le seguenti operazioni:

• Leggere da tastiera le preferenze di ogni persona, sotto forma di 10 righe, ciascuna composta da 9 interi (seprati da uno spazio). Il primo numero sulla riga i-esima rappresenta il compagno di gioco più “desiderato” dalla persona i-esima, l'ultimo quello meno desiderato.

• Calcolare l'abbinamento ottimale, ossia quello che massimizza la funzione A = Σ f(i), dove f(i) è una funzione che per la persona i-esima vale 10 se la persona è stata assegnata con il compagno più desiderato, 9 se è stata assegnata al compagno corrispondente alla seconda scelta, e così via. La sommatoria è estesa a tutte le 10 persone. Nel caso ottimo (non sempre possibile) la funzione A assume il valore 100.

• Visualizza l'abbinamento ottimo, stampando su video le 5 coppie di numeri (identificativi delle persone) che risultano dall'abbinamento.

Esempio

Supponendo che il numero di persone coinvolte sia 4, si ipotizzi che il programma legga le seguenti righe

2 4 3 3 1 4 2 4 1 1 2 3

L'abbinamento ottimale è: 1-4 (7 punti) 2-3 (8 punti).

1 4 2 3

Riferimenti

Documenti correlati

Si sa’ anche che scelti qualunque 6 elementi dell’insieme N, almeno 2 di questi elementi appartengono all’insieme M ed almeno 3 elementi non appartengono all’insieme M. Determinare

resistente rispetto ad altre strategie che “compaiano” fra quelle usate dagli individui nella popolazione, giocate da una piccola frazione di individui nella popolazione

Quali sono le principali differenze tra gli scheduler per sistemi operativi batch, interattivi e real-time. Domanda 6

Esame di Sistemi di Elaborazione.

In riferimento alla memoria cache descrivere il principio di localit` a e discutere le variabili di progetto (dimensione totale, dimensione delle linee, tipologia

PER LA GITA SCOLASTICA SONO STATI PRENOTATI 3 PULLMAN DA 54 POSTI.. IL BIBLIOTECARIO HA SISTEMATO 175 VOLUMI IN

La mia migliore amica è andata a vivere in un'altra città, quando ci penso provo tanta

Tale metodo verifica se esiste una riga di m che equivale all’array a , cioè se esiste una riga di m la cui sequenza (ordinata) di stringhe equivale alla sequenza di