• Non ci sono risultati.

Algoritmi e Programmazione Avanzata Compito di teoria – 19 settembre 2007

N/A
N/A
Protected

Academic year: 2021

Condividi "Algoritmi e Programmazione Avanzata Compito di teoria – 19 settembre 2007"

Copied!
1
0
0

Testo completo

(1)

Algoritmi e Programmazione Avanzata

Compito di teoria – 19 settembre 2007

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

Esercizio 1

(5 punti)

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

44 16 88 22 8 69 36 5 12 53 61 72

Si eseguano i primi 2 passi dell’algoritmo di quicksort per ottenere un ordinamento ASCENDENTE. NB: i passi sono da intendersi, impropriamente, come in ampiezza sull’albero della recursione, non in profondità. Si chiede, pertanto, che siano ritornate le 2 partizioni del vettore originale e le due partizioni di ciascuna delle partizioni trovate al passo precedente.

Esercizio 2

(4 punti)

Sia data la sequenza di chiavi S1A1NFER1R2A2GO1S2TO2 dove ciascun carattere è individuato dal suo ordine progressivo nell'alfabeto (A=1, ..., Z=26). Si definisca una funzione di hash per l'utilizzo di una tabella di hash e si riporti la struttura di una tabella di hash di dimensione 19, inzialmente supposta vuota, in cui avvenga l'inserimento della sequenza di cui sopra supponendo di utilizzare l'open addressing con probing lineare.

Esercizio 3

(1+5 punti)

Sia dato il seguente grafo orientato e pesato:

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

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. Si riportino i passaggi dell'algoritmo in modo da evincere l'ordine di analisi dei nodi e le operazioni di aggiornamento dei cammini minimi.

I voti saranno comunicati tramite email (da riportare in stampatello sul compito), contestualmente alla data e luogo per la registrazione.

3

D

G F

B

E C

A

1

3

4 3

1

5

3

5 2

Riferimenti

Documenti correlati

• Con un appropriato dimensionamento della tabella hash, è possibile avere nel caso medio un costo (1) per tutte le operazioni. ‣ Intuitivamente, le liste di trabocco sono

Se si considera ogni chiave c come un intero (di |c| bit), è possibile trasformarla in un indirizzo considerando il resto della divisione (modulo) per M :. H(c) =

Il grafo che rappresenta le connessioni della rete wireless ha come vertici i nodi della rete e come archi, le connessioni tra i nodi che si trovano ad una distanza inferiore ad L

2 h(k) 6= l , i.e., the element is in the middle of a chain ⇒ Save the pointer to the next element, erase the content of this slot and push it to the free slots stack. ,→ As for

Scrivere un programma che legga da tastiera una sequenza di n interi NON distinti e li inserisca senza duplicati in una tabella hash di dimensione 2n posizioni utilizzando

Data una tabella hash T in cui le collisioni sono risolte con le liste di trabocco, definire una procedura di ricerca di una chiave che sposti la chiave cercata, se presente

Scrivere un programma che legga da tastiera una sequenza di n interi NON distinti e li inserisca senza duplicati in una tabella hash di dimensione 2n posizioni utilizzando

[r]