Tabelle hash.

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

Gestione della Memoria
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Algoritmi e Strutture Dati
Tecnologia delle basi di dati: Strutture fisiche di accesso
2. Introduzione alla probabilità
1 MeDeC - Centro Demoscopico Metropolitano Provincia di Bologna - per Valutazione su alcuni servizi erogati nel.
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
Estendere i linguaggi: i tipi di dato astratti
Strutture dati lineari
File System Cos’è un File System File e Directory
1 2. Introduzione alla probabilità Definizioni preliminari: Prova: è un esperimento il cui esito è aleatorio Spazio degli eventi elementari : è linsieme.
Frontespizio Economia Monetaria Anno Accademico
Lez. 131 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Rappresentazione.
Realizzazione del file system
Fondamenti di Informatica I a.a Il linguaggio C Il preprocessore La sostituzione di macro Le compilazioni condizionali Linclusione di file C.
Algoritmi e complessità
Anno accademico Array e puntatori in C.
Hash Tables Indirizzamento diretto Tabelle Hash
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Realizzazione del file system
Algoritmi in C++ (1) da completare
Ordini Parziali - Reticoli
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
TEORIA RAPPRESENTAZIONALE DELLA MISURA
Process synchronization
File.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati.
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
Corso di Informatica per Giurisprudenza
Test di ipotesi X variabile casuale con funzione di densità (probabilità) f(x; q) q Q parametro incognito. Test Statistico: regola che sulla base di un.
Hashing.
Hashing.
Master universitario di II livello in Ingegneria delle Infrastrutture e dei Sistemi Ferroviari Anno Accademico 2012/2013 Cultura dimpresa, valutazione.
La partita è molto combattuta perché le due squadre tentano di vincere fino all'ultimo minuto. Era l'ultima giornata del campionato e il risultato era.
Tecniche HASH Corso (B) di Programmazione CDL in Informatica I livello A.A DIB - Università di Bari dal materiale didattico (aa ) di.
Un gioco di magia!?.
Algoritmi e Programmazione Avanzata
Educare al multimediale 1 – Verso il digitale 2 Presentazione a cura di Gino Roncaglia Prima parte: Informazione in formato digitale.
MATRICI classe 3 A inf (a.s ).
Esercitazione 1: Rispetto al test di ansia (Media=25; σ=5), calcolare:
Metodo della moltiplicazione
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
2000 Prentice Hall, Inc. All rights reserved. Capitolo 6 (Deitel) I vettori Sommario Introduzione Vettori Dichiarazione di vettori 6.4.
Radix-Sort(A,d) // A[i] = cd...c2c1
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
Progettare un database
Hashing.
Passo 3: calcolo del costo minimo
Ispezione lineare La funzione hash h(k,i) si ottiene da una funzione hash ordinaria h'(k) ponendo L’esplorazione inizia dalla cella h(k,0) = h'(k) e continua.
Introduzione ai linguaggi formali e alle stringhe
Un trucchetto di Moltiplicazione per il calcolo mentale
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Corso JAVA Lezione n° 11 Istituto Statale di Istruzione Superiore “F. Enriques”
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
STATISTICA PER LA RICERCA SPERIMENTALE E TECNOLOGICA
Capitolo 7 Tavole hash Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
La verifica d’ipotesi Docente Dott. Nappo Daniela
Ordinamento in tempo lineare Il limite inferiore Ω(n log n) vale per tutti gli algoritmi di ordinamento generali, ossia per algoritmi che non fanno alcuna.
Hashing. 2 argomenti Hashing Tabelle hash Funzioni hash e metodi per generarle Inserimento e risoluzione delle collisioni Eliminazione Funzioni hash per.
Algoritmi e Strutture Dati
Microsoft Access Chiavi, struttura delle tabelle.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
1 “ Le Basi di Dati ”. 2 Parte 5: Tabelle –Creazione di una tabella –Indici e chiavi primarie –Relazioni e integrità referenziale Basi di Dati Struttura.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Transcript della presentazione:

Tabelle hash

Background Problema Memorizzare in maniera opportuna un insieme di dati  tipicamente sotto forma di record  in modo da poter reperire un qualsiasi elemento dell’insieme con un numero “piccolo” di tentativi Cosa significa “piccolo” ? Indipendente (o quasi) dalla dimensione della tabella su cui si effettua la ricerca, quindi con una complessità in tempo pari ad O (1)

Funzioni hash  1 h: K → {0, 1, 2, …, m–1} K: insieme dei valori distinti che possono essere assunti dalle chiavi dei record m: dimensione del vettore in cui si intende memorizzare la tabella Ipotesi: K sottoinsieme dei numeri naturali Possibile funzione di accesso: h(k)  k MOD m, kK Valore della funzione sempre compreso fra 0 e m–1

Funzioni hash  2 Se K non è un sottoinsieme dei numeri naturali Esempio: insieme di stringhe alfanumeriche La funzione hash si applica a numeri Per utilizzarla in corrispondenza di una chiave non numerica occorre associare alla chiave un valore numerico Necessità di definire funzioni hash generali Associazione di un valore numerico ad una chiave di qualunque tipo Applicazione della funzione hash numerica a tale valore Esempio: si utilizza una somma dei codici ASCII dei caratteri che costituiscono la stringa

Collisioni  1 Associazione, da parte di una trasformazione, della stessa posizione a chiavi distinte Sinonimi Esempio: [10,12,20,23,27,30,31,39,42,44,45,49,53,57,60] h(chiave)  (chiave MOD 15)  1 Posizione 1 ← 30, 45, 60 Posizione 9 ← 23, 53 Posizione 13 ← 12, 27, 42, 57 Ciascuna posizione dell’array può contenere al più un elemento; occorre… Ridurre al massimo le collisioni Gestirle quando si verificano

Collisioni  2 Funzioni di hashing perfetto (che evitano i duplicati) sono rare, anche per tabelle grandi Esempio: paradosso del compleanno Dato un gruppo di 23 persone, ci sono più del 50% di probabilità che due di esse siano nate nello stesso giorno dell’anno In altre parole, se scegliamo una funzione aleatoria che trasforma 23 chiavi in un indirizzo di una tabella di 365 elementi, la probabilità che due chiavi NON collidano è solo 0.4927 (meno della metà) Individuare una funzione di accesso che porti ad un numero ridotto di collisioni è un problema complesso

Collisioni  3 Tuttavia… numero di collisioni ridotto drasticamente se accettiamo uno spreco del 20% di memoria extra Esempio: array di 19 elementi (indicizzati da 0 a 18) Posizione 0 ← 57 Posizione 8 ← 27 Posizione 1 ← 20, 39 Posizione 10 ← 10 Posizione 3 ← 60 Posizione 11 ← 30, 49 Posizione 4 ← 23, 42 Posizione 12 ← 12, 31 Posizione 6 ← 44 Posizione 15 ← 53 Posizione 7 ← 45 Collisioni non eliminate del tutto

Gestione delle collisioni  1 Uso di liste concatenate destinate alla memorizzazione degli elementi che, in inserimento, hanno portato ad una collisione Ricerca di un elemento di chiave k Si calcola h(k) Se si verifica una collisione allora si accede alla lista associata alla posizione h(k) e la si scandisce

Gestione delle collisioni  2 Il costo dell’operazione di ricerca  realizzata in modo lineare relativamente alle liste di elementi in collisione  si mantiene pressoché indipendente da n (numero degli elementi contenuti nella tabella) Semplicità di realizzazione Metodo non adatto a reperire sottoinsiemi di dati con chiave che soddisfi una data relazione