ALG 13b Srůstající hashování Ukázky

Slides:



Advertisements
Podobné prezentace
OZD: Hašování RNDr. Michal Žemlička.
Advertisements

Martina Košíková, Adéla Kaschnerová
Dualita úloh lineárního programování a analýza citlivosti
Tabulky v MS ACCESS Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Jiří Novák.
SHA-1 Secure Hash Algorithm Martin Raichl. HASH  Hašovací funkce jsou silným nástrojem moderní kryptologie. Jsou jednou z klíčových kryptologických myšlenek.
Programovací jazyk C++
Třída SIMSET je druhou standardní systémovou třídou, která obsahuje prostředky pro práci se spojovými seznamy. KRUHOVÉ SPOJOVÉ SEZNAMY Spojový seznam –
Zpracování SQL Lubomír Andrle 5. přednáška
1 Vnitřní řazení s využitím dynamických struktur Tvorba spojového seznamu je vcelku triviální záležitostí: a)Vytvořím prázdný seznam příkazem LIST:=nil.
Fronta - a)Implementace s využitím statických struktur (pole) b)Implementace s využitím dynamických struktur (spojového seznamu) odebírá se ze začátku.
Semestrální práce KIV/PT Martin Kales Hana Hůlová.
Vzorová písemka Poznámka: Bonusové příklady jsou nepovinné, lze za ně ale získat body navíc. (2 body) Definujte pojem gradient. Vypočítejte gradient funkce.
ALGO – Algoritmizace 1. cvičení
Třídění Seminář IVT. Definice uspořádání skupiny dat (záznamů) dle daného klíče vzestupně (od nejmenší do největší hodnoty klíče) sestupně (od největší.
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Co má obsahovat prezentace
Odpovědi na otázky Praha 2007 Bc. Dalibor Barri ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Katedra mikroelektroniky.
Skip-List je datová struktura, která může být použita jako náhrada za vyvážené stromy. představují pravděpodobnostní alternativu k vyváženým stromům (struktura.
Hashovací tabulky v Lua
Databáze Jiří Kalousek.
1 Vyhledávání Principy vyhledávání Klasifikace klíče:  Interní klíč – je součástí prohlížených záznamů  Externí klíč – není jeho součástí, je jím např.
Budování Digitální knihovny Vysokého učení technického v Brně Barbara Šímová /
B-strom je dynamická indexová struktura.
Algoritmy a programovací techniky
Úvod do algoritmizace Obsah: Algoritmus, algoritmizace
Algoritmy vyhledávání a řazení
Genetické algoritmy [GA]. Historie:  1960: I. Rechenberg – první odborná práce na toto téma „Evolution strategies“  1975: John Holland – první genetický.
Macromedia Dreamweaver Software pro editaci kódu Bohuslav Čech3MA381.
Databázové systémy II Cvičení č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové modelování
Active Directory Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
2 Petr Žitný znalosti.vema.cz 3 Báze znalostí Nová služba zákazníkům ▸Báze naplněná informacemi, ke které mají uživatelé přímý přístup Základní cíl ▸Poskytovat.
ALGO – Algoritmizace 4. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
Aplikační a programové vybavení
Kompresní algoritmus LZW Dokumentografické informační systémy.
Obecná kvantifikace v relačních databázích Přehled typů dat a algoritmů Alan Eckhardt.
Real time jádro operačního systému Lukáš Hamáček.
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
Systém souborů. Množina souborů různých typů – Data – Spustitelné programy – Konfigurační a pomocné informace – I/O zařízení Způsob organizace množiny.
Zpracoval :Ing. Petr Dlask, Ph.D. Pracoviště :Katedra Ekonomiky a řízení stavebnictví ČVUT v Praze Adresa :Thákurova 7, Praha 6, Dejvice Optimalizace.
DBXplorer Systém pro vyhledávání nad relačními databází podle klíčových slov. zpracovala Margarita Vishnyakova.
OSNOVA: a) Ukazatel b) Pole a ukazatel c) Pole ukazatelů d) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro.
Systém souborů. Množina souborů různých typů – Data – Spustitelné programy – Konfigurační a pomocné informace – I/O zařízení Způsob organizace množiny.
Škola: Střední škola právní – Právní akademie, s.r.o. Typ šablony: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Projekt: CZ.1.07/1.5.00/
Prostorové datové struktury
ALGO – Algoritmizace 7. cvičení – ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
2014 Výukový materiál GE Tvůrce: Mgr. Šárka Vopěnková Projekt: S anglickým jazykem do dalších předmětů Registrační číslo: CZ.1.07/1.1.36/
Dynamická webová aplikace Autor:Ondřej Soukup Třída:I3.
MS EXCEL Charakteristika
Využití sestavy Zobrazení a typy Části sestavy Vytvoření sestavy Ovládací prvky.
PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Programovací jazyk C++
C-síť (circle – net) Petr Kolman.
Název školy: ZŠ Bor, okres Tachov, příspěvková organizace
Programování 2. hodina RNDr. Jan Lánský, Ph.D.
PROLOG strategie vyhodnocení dotazu
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Databázové systémy a SQL
Optimální pořadí násobení matic
Algoritmizace Hashing II
ALG 07 Selection sort (Select sort) Insertion sort (Insert sort)
ALG 09 Radix sort (přihrádkové řazení) Counting sort
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Různé algoritmy mají různou složitost: O(n), Ω(n2), Θ(n·log2(n)), …
HASH.
Dynamické programování Optimální binární vyhledávací strom
Systém souborů 1.
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

ALG 13b Srůstající hashování Ukázky A4B33ALG 2015/13 ALG 13b Srůstající hashování Ukázky LISCH (late insert standard coalesced hashing) EISCH (early insert standard coalesced hashing) LICH (late insert coalesced hashing) EICH (early insert coalesced hashing) VICH (variable insert coalesced hashing)

Srůstající hashování -- coalesced hashing A4B33ALG 2015/13 Srůstající hashování -- coalesced hashing Jde o metodu řešení kolizí, nezáleží na konkrétní podobě hashovací funkce h(k). Ann 10 1 2 Ben 6 3 4 Irma 8 5 Hugo 7 Gene Fred -- Edna 9 Dana Cole Synonyma (po kolizi) se ukádají do jednosměrného spojového seznamu synonym. Všechny seznamy jsou "propleteně" uloženy přímo v tabulce. Tabulka ke každému klíči obsahuje ukazatel na další klíč v seznamu. Každý klíč je součástí některého seznamu synonym. Při vyhledávání se postupuje stejně jako při vkládání, v podstatě jde o lineární prohledávání spojového seznamu. Ann 10 Cole 9 Dana 5 Hugo 7 Fred 3 Ben 6 Gene 4 Irma 8 Edna 1

LISCH (late insert standard coalesced hashing) A4B33ALG 2015/13 LISCH (late insert standard coalesced hashing) Name Next 1 2 3 4 5 6 7 8 9 Hashovací funkce h, data d. Pozice p := h(d); Prohledej seznam začínající na pozici p a pokud nenajdeš d, přidej d do tabulky na první volné místo od konce tabulky a připoj ho do seznamu synonym d na poslední místo. Ukazatel na první volné místo od konce tabulky. Po každém přidání prvku se aktualizuje. data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 8 7 2

LISCH (late insert standard coalesced hashing) A4B33ALG 2015/13 LISCH (late insert standard coalesced hashing) Ann -- 1 2 3 4 5 6 7 8 9 Ann -- 1 2 Ben 3 4 5 6 7 8 9 Ann 9 1 2 Ben -- 3 4 5 6 7 8 Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 8 7 3

LISCH (late insert standard coalesced hashing) A4B33ALG 2015/13 LISCH (late insert standard coalesced hashing) Ann 9 1 2 Ben -- 3 4 5 6 7 8 Cole Ann 9 1 2 Ben -- 3 Dana 4 5 6 7 8 Cole Ann 9 1 2 Ben 8 3 Dana -- 4 5 6 7 Edna Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 8 7 4

LISCH (late insert standard coalesced hashing) A4B33ALG 2015/13 LISCH (late insert standard coalesced hashing) Ann 9 1 2 Ben 8 3 Dana -- 4 5 6 7 Edna Cole Ann 9 1 2 Ben 8 3 Dana -- 4 5 6 7 Fred Edna Cole Ann 9 1 2 Ben 8 3 Dana -- 4 5 6 Gene 7 Fred Edna Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 8 7 5

LISCH (late insert standard coalesced hashing) A4B33ALG 2015/13 LISCH (late insert standard coalesced hashing) Ann 9 1 2 Ben 8 3 Dana -- 4 5 6 Gene 7 Fred Edna Cole Ann 9 1 2 Ben 8 3 Dana -- 4 5 Hugo 6 Gene 7 Fred Edna Cole Ann 9 1 2 Ben 8 3 Dana -- 4 Irma 5 Hugo 6 Gene 7 Fred Edna Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 8 7 6

EISCH (early insert standard coalesced hashing) A4B33ALG 2015/13 EISCH (early insert standard coalesced hashing) Name Next 1 2 3 4 5 6 7 8 9 Hashovací funkce h, data d. Pozice p := h(d); Prohledej seznam začínající na pozici p a pokud nenajdeš d, přidej d do tabulky na první volné místo od konce tabulky a připoj ho do seznamu synonym d za první místo. Ukazatel na první volné místo od konce tabulky. Po každém přidání prvku se aktualizuje. data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 6 7

EISCH (early insert standard coalesced hashing) A4B33ALG 2015/13 EISCH (early insert standard coalesced hashing) Ann -- 1 2 3 4 5 6 7 8 9 Ann -- 1 2 Ben 3 4 5 6 7 8 9 Ann 9 1 2 Ben -- 3 4 5 6 7 8 Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 6 8

EISCH (early insert standard coalesced hashing) A4B33ALG 2015/13 EISCH (early insert standard coalesced hashing) Ann 9 1 2 Ben -- 3 4 5 6 7 8 Cole Ann 9 1 2 Ben -- 3 Dana 4 5 6 7 8 Cole Ann 9 1 2 Ben 8 3 Dana -- 4 5 6 7 Edna Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 6 9

EISCH (early insert standard coalesced hashing) A4B33ALG 2015/13 EISCH (early insert standard coalesced hashing) Ann 9 1 2 Ben 8 3 Dana -- 4 5 6 7 Edna Cole Ann 9 1 2 Ben 8 3 Dana -- 4 5 6 7 Fred Edna Cole Ann 6 1 2 Ben 8 3 Dana -- 4 5 Gene 9 7 Fred Edna Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 6 10

EISCH (early insert standard coalesced hashing) A4B33ALG 2015/13 EISCH (early insert standard coalesced hashing) Ann 6 1 2 Ben 8 3 Dana -- 4 5 Gene 9 7 Fred Edna Cole Ann 6 1 2 Ben 5 3 Dana -- 4 Hugo 8 Gene 9 7 Fred Edna Cole Ann 6 1 2 Ben 5 3 Dana -- 4 Irma 9 Hugo 8 Gene 7 Fred Edna Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 6 11

EISCH (early insert standard coalesced hashing) A4B33ALG 2015/13 EISCH (early insert standard coalesced hashing) Insert(Hugo) Ann 6 1 2 Ben 8 3 Dana -- 4 5 Gene 9 7 Fred Edna Cole Ann Ann 6 1 2 Ben 5 3 Dana -- 4 Hugo 8 Gene 9 7 Fred Edna Cole Ann 6 Gene 6 Gene 9 Cole 9 Cole 7 Fred 7 Fred 2 Ben 2 Ben 8 Edna 5 Hugo 8 Edna data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 6 12

EISCH (early insert standard coalesced hashing) A4B33ALG 2015/13 EISCH (early insert standard coalesced hashing) Insert(Irma) Ann 6 1 2 Ben 5 3 Dana -- 4 Hugo 8 Gene 9 7 Fred Edna Cole Ann Ann 6 1 2 Ben 5 3 Dana -- 4 Irma 9 Hugo 8 Gene 7 Fred Edna Cole Ann 6 Gene 6 Gene 9 Cole 4 Irma 7 Fred 9 Cole 7 Fred 2 Ben 2 Ben 5 Hugo 5 Hugo 8 Edna 8 Edna data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 3 9 6 13

Srůstající hashování s pomocnou pamětí A4B33ALG 2015/13 Srůstající hashování s pomocnou pamětí Pro snížení srůstání a tedy zvýšení efektivity hashování se tabulka rozšiřuje o pomocnou paměť - tzv. sklep (cellar). Sklep je místo na konci tabulky, které není adresovatelné hashovací funkcí, má ale stejnou strukturu jako celá tabulka. Algoritmy LICH a EICH jsou analogické varianty algoritmů LISCH a EISCH s přidáním sklepa. Po naplnění sklepa pokračuje plnění jako v LISCH a EISCH. Algoritmus VICH (variable insert coalesced hashing) připojuje prvek za poslední prvek seznamu, který je ještě ve sklepě. Pokud ve sklepě žádný není, vkládá jako EISCH, tj. hned za kolidující prvek v seznamu. 14

LICH (late insert coalesced hashing) A4B33ALG 2015/13 LICH (late insert coalesced hashing) Ann -- 1 2 3 4 5 6 7 8 9 10 Ann -- 1 2 Ben 3 4 5 6 7 8 9 10 Ann 10 1 2 Ben -- 3 4 5 6 7 8 9 Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 7 5 8 15

LICH (late insert coalesced hashing) A4B33ALG 2015/13 LICH (late insert coalesced hashing) Ann 10 1 2 Ben -- 3 4 5 6 7 8 9 Cole Ann 10 1 2 Ben -- 3 4 5 6 7 8 9 Dana Cole Ann 10 1 2 Ben 8 3 4 5 6 7 Edna -- 9 Dana Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 7 5 8 16

LICH (late insert coalesced hashing) A4B33ALG 2015/13 LICH (late insert coalesced hashing) Ann 10 1 2 Ben 8 3 4 5 6 7 Edna -- 9 Dana Cole Ann 10 1 2 Ben 8 3 4 5 6 7 Fred -- Edna 9 Dana Cole Ann 10 1 2 Ben 8 3 4 5 6 Gene -- 7 Fred Edna 9 Dana Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 7 5 8 17

LICH (late insert coalesced hashing) A4B33ALG 2015/13 LICH (late insert coalesced hashing) Ann 10 1 2 Ben 8 3 4 5 6 Gene -- 7 Fred Edna 9 Dana Cole Ann 10 1 2 Ben 8 3 4 5 Hugo -- 6 Gene 7 Fred Edna 9 Dana Cole Ann 10 1 2 Ben 8 3 4 Irma -- 5 Hugo 6 Gene 7 Fred Edna 9 Dana Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 7 5 8 18

EICH (early insert coalesced hashing) A4B33ALG 2015/13 EICH (early insert coalesced hashing) Ann -- 1 2 3 4 5 6 7 8 9 10 Ann -- 1 2 Ben 3 4 5 6 7 8 9 10 Ann 10 1 2 Ben -- 3 4 5 6 7 8 9 Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 7 8 19

EICH (early insert coalesced hashing) A4B33ALG 2015/13 EICH (early insert coalesced hashing) Ann 10 1 2 Ben -- 3 4 5 6 7 8 9 Cole Ann 9 1 2 Ben -- 3 4 5 6 7 8 Dana 10 Cole Ann 9 1 2 Ben 8 3 4 5 6 7 Edna -- Dana 10 Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 7 8 20

EICH (early insert coalesced hashing) A4B33ALG 2015/13 EICH (early insert coalesced hashing) Ann 9 1 2 Ben 8 3 4 5 6 7 Edna -- Dana 10 Cole Ann 7 1 2 Ben 8 3 4 5 6 Fred 9 Edna -- Dana 10 Cole Ann 7 1 2 Ben 8 3 4 5 6 Gene 9 Fred Edna -- Dana 10 Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 7 8 21

EICH (early insert coalesced hashing) A4B33ALG 2015/13 EICH (early insert coalesced hashing) Ann 7 1 2 Ben 8 3 4 5 6 Gene 9 Fred Edna -- Dana 10 Cole Ann 5 1 2 Ben 8 3 4 Hugo 7 6 Gene 9 Fred Edna -- Dana 10 Cole Ann 5 1 2 Ben 8 3 4 Irma -- Hugo 7 6 Gene 9 Fred Edna Dana 10 Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 7 8 22

VICH (variable insert coalesced hashing) A4B33ALG 2015/13 VICH (variable insert coalesced hashing) Ann -- 1 2 3 4 5 6 7 8 9 10 Ann -- 1 2 Ben 3 4 5 6 7 8 9 10 Ann 10 1 2 Ben -- 3 4 5 6 7 8 9 Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 6 23

VICH (variable insert coalesced hashing) A4B33ALG 2015/13 VICH (variable insert coalesced hashing) Ann 10 1 2 Ben -- 3 4 5 6 7 8 9 Cole Ann 10 1 2 Ben -- 3 4 5 6 7 8 9 Dana Cole Ann 10 1 2 Ben 8 3 4 5 6 7 Edna -- 9 Dana Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 6 24

VICH (variable insert coalesced hashing) A4B33ALG 2015/13 VICH (variable insert coalesced hashing) Ann 10 1 2 Ben 8 3 4 5 6 7 Edna -- 9 Dana Cole Ann 10 1 2 Ben 8 3 4 5 6 7 Fred -- Edna 9 Dana Cole Ann 10 1 2 Ben 6 3 4 5 Gene 8 7 Fred -- Edna 9 Dana Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 6 25

VICH (variable insert coalesced hashing) A4B33ALG 2015/13 VICH (variable insert coalesced hashing) Ann 10 1 2 Ben 6 3 4 5 Gene 8 7 Fred -- Edna 9 Dana Cole Ann 10 1 2 Ben 6 3 4 5 Hugo 7 Gene 8 Fred -- Edna 9 Dana Cole Ann 10 1 2 Ben 6 3 4 Irma 8 5 Hugo 7 Gene Fred -- Edna 9 Dana Cole data Ann Ben Cole Dana Edna Fred Gene Hugo Irma h(data) 2 6 26