• Non ci sono risultati.

TABELLE HASH - esercizi

N/A
N/A
Protected

Academic year: 2021

Condividi "TABELLE HASH - esercizi"

Copied!
1
0
0

Testo completo

(1)

TABELLE HASH - esercizi

Esercizio 1

Siano date le chiavi S = 2, 9, 1, 11, 4. Si consideri una tabella hash T di dimensione m = 7 con collisioni gestite mediante indirizzamento aperto.

• Si discuta l'utilizzabilità della funzione hash

h(k, i) = (14 * k + i ) mod 7

nel calcolo della sequenza di ispezione della tabella T per l'inserimento delle chiavi di S.

Si progetti un doppio hash per T e si inseriscano mediante esso le chiavi di S.

Esercizio 2

Si consideri l’operazione di ricerca della chiave minima in una tabella hash di dimensione m in cui sono memorizzate n chiavi e se ne discuta la complessità in funzione di n e m nei seguenti due casi:

1. tabella hash con liste di trabocco;

2. tabella hash a indirizzamento aperto.

Esercizio 3

Si consideri un array S di n chiavi intere.

• Si dia il codice di un algoritmo che con un’unica scansione di S conti il numero r di chiavi distinte in S. Usare un dizionario D inizialmente vuoto (non interessa l’implementazione di D).

• Facendo l’assunzione che D sia implementato come un array ordinato, si analizzi la complessità in funzione di n e del numero r di chiavi distinte.

Esercizio 4

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 nella tabella, in testa alla propria lista di trabocco.

Esercizio 5

Dato un array non ordinato di interi positivi, progettare un algoritmo, di complessità lineare al caso medio, per verificare se esistono due elementi nell'array aventi somma k.

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) =

• quando, in seguito a un inserimento, si ha α = 1 (cioè ogni lista contiene in media 1 elemento), si crea una nuova tabella di dimensione 2M (cioè doppia), vi si trasferiscono i

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

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]

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

CARTELLONE MURALE SULLA COMPRENSIONE DELLE PAROLE CHIAVE NELLA RISOLUZIONE.