Z kladn probl m: Reprezentace mno 0 6in a operace s nimi. V 0 0ad loh a algoritm 0 1 je tento

Podobné dokumenty
Line rn oper tory v euklidovsk ch prostorech V t to sti pou ijeme obecn v sledky o line rn ch oper torech ve vektorov ch prostorech nad komplexn mi sl

4.3 Operace nad ordin ln mi datov mi typy Operace nad logick m datov m typem Operace nad celo seln mi datov mi typy

p (1) k 0 k 1 je pravd podobnost p echodu ze stavu k i v l ; 1 kroku do stavu k j

Modul Řízení objednávek.

TECHNICKÉ KRESLENÍ A CAD

1 3Statistika I (KMI/PSTAT)

Pokyn D Sdělení Ministerstva financí k rozsahu dokumentace způsobu tvorby cen mezi spojenými osobami

6. Matice. Algebraické vlastnosti

Programový komplet pro evidence provozu jídelny v modul Sklad Sviták Bechyně Ladislav Sviták hotline: 608/

PŘIJÍMACÍ ŘÍZENÍ. Strana

NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO PŘÍRUČKA UŽIVATELE

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: jan.skrbek@tul.cz tel.: Konzultace: úterý

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Reálná čísla

KAPITOLA 6.3 POŽADAVKY NA KONSTRUKCI A ZKOUŠENÍ OBALŮ PRO INFEKČNÍ LÁTKY KATEGORIE A TŘÍDY 6.2

4 Stromy a les. Petr Hlin їn 0 5, FI MU Brno 1 FI: MA010: Stromy a les

a m1 a m2 a mn zobrazení. Operaci násobení u matic budeme definovat jiným způsobem.

Příloha č. 54. Specifikace hromadné aktualizace SMS-KLAS

ZKUŠEBNÍ ŘÁD PRO ZKOUŠKY TERIÉRŮ A JEZEVČÍKŮ BARVÁŘSKÉ ZKOUŠKY (BZ)

170/2010 Sb. VYHLÁŠKA. ze dne 21. května 2010

Výzva k podání nabídky a k prokázání kvalifikace pro VZ malého rozsahu

Ploché výrobky z konstrukčních ocelí s vyšší mezí kluzu po zušlechťování technické dodací podmínky

10 je 0,1; nebo taky, že 256

DOMOVNÍ ŘÁD BYTOVÉHO DRUŽSTVA ZÁZVORKOVA 2007, 2008, 2009

Pokyny České pošty pro označování Doporučených zásilek čárovými kódy

Ėlektroakustika a televize. TV norma ... Petr Česák, studijní skupina 205

29 Evidence smluv. Popis modulu. Záložka Evidence smluv

1.2.7 Druhá odmocnina


Vý mě na kopelitový ch tabulíza plastová okna v budově školy

Algoritmizace a programování

Poukázky v obálkách. MOJESODEXO.CZ - Poukázky v obálkách Uživatelská příručka MOJESODEXO.CZ. Uživatelská příručka. Strana 1 / 1. Verze aplikace: 1.4.

Úlohy domácího kola kategorie C

účetních informací státu při přenosu účetního záznamu,

VYKAZOVÁNÍ VÝSLEDKŮ VÝZKUMU A VÝVOJE

PALETOVÉ REGÁLY SUPERBUILD NÁVOD NA MONTÁŽ

AMC/IEM HLAVA B PŘÍKLAD OZNAČENÍ PŘÍMOČARÉHO POHYBU K OTEVÍRÁNÍ

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

Preference v u ívání prost edk elektronické komunikace áky a studenty

Náležitosti nutné k zahájení znaleckých úkonů

Aplikace počítačů v provozu vozidel 9

A. PODÍL JEDNOTLIVÝCH DRUHŮ DOPRAVY NA DĚLBĚ PŘEPRAVNÍ PRÁCE A VLIV DÉLKY VYKONANÉ CESTY NA POUŽITÍ DOPRAVNÍHO PROSTŘEDKU

3. Polynomy Verze 338.

Česká školní inspekce Zlínský inspektorát INSPEKČNÍ ZPRÁVA. Č. j. ČŠIZ-780/11-Z. Příspěvková organizace. Zdeňkou Michutovou, ředitelkou školy

ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE

Metody hodnocení rizik

227/2000 Sb. ZÁKON ČÁST PRVNÍ ELEKTRONICKÝ PODPIS

POKYNY Č. 45. Část I Zápis nové stavby jako samostatné věci

Obsah 1. Grafický manuál firmy 2. Podklady grafického manuálu 3. Varianty loga 4. Logo a logotyp

Návod na zřízení datové schránky právnické osoby nezapsané v obchodním rejstříku

Algoritmizace a programování

Press kit Můžeme se zdravou stravou vyvarovat střevních zánětů?

Disciplinární řád. 1 Účel disciplinárního řádu

а а

c sin Příklad 2 : v trojúhelníku ABC platí : a = 11,6 dm, c = 9 dm, α = Vypočtěte stranu b a zbývající úhly.

ODŮVODNĚNÍ VEŘEJNÉ ZAKÁZKY Dostavba splaškové kanalizace - Prostřední Bečva a Horní Bečva, zhotovitel, dle vyhlášky č. 232/2012 Sb.

PARLAMENT ČESKÉ REPUBLIKY Poslanecká sněmovna 2005 IV. volební období

Oprava střechy a drenáže, zhotovení a instalace kované mříže kostel Sv. Václava Lažany

Číslo zakázky (bude doplněno poskytovatelem dotace) 1 Název programu: Operační program Vzdělávání pro konkurenceschopnost

M. Balíková, R. Záhořík, NK ČR 1

OZNÁMENÍ VÝBĚROVÉHO ŘÍZENÍ ZADÁVACÍ PODMÍNKY PRO VÝBĚROVÉ ŘÍZENÍ PROJEKTU PROGRAMU ROZVOJE VENKOVA

WEBDISPEČINK NA MOBILNÍCH ZAŘÍZENÍCH PŘÍRUČKA PRO WD MOBILE

PŘÍLOHA 1.7 SMLOUVY O PŘÍSTUPU K VEŘEJNÉ PEVNÉ KOMUNIKAČNÍ SÍTI PROGRAM ZVYŠOVÁNÍ KVALITY

I. Objemové tíhy, vlastní tíha a užitná zatížení pozemních staveb

KOMISE EVROPSKÝCH SPOLEČENSTVÍ

1 - Prostředí programu WORD 2007

Základní škola, Staré Město, okr. Uherské Hradiště, příspěvková organizace. Komenské 1720, Staré Město, Metodika

( x ) 2 ( ) Další úlohy s kvadratickými funkcemi. Předpoklady: 2501, 2502

OVĚŘENÍ ELEKTRICKÉHO ZAŘÍZENÍ STROJŮ NOVĚ UVÁDĚNÝCH DO PROVOZU PODLE ČSN/STN EN Ed. 2

7. Domy a byty Charakteristika domovního fondu

SOUTĚŽNÍ ŘÁD soutěží ČSOB v orientačním běhu

Zadávací dokumentace k výběrovému řízení č na: DODÁVKY KOŘENÍ. (dále jen Zadávací dokumentace )

M - Příprava na čtvrtletní písemnou práci

Žádost o informace podle zákona č. 106/1999 Sb. o svobodném přístupu k informacím.

Zvyšování kvality výuky v přírodních a technických oblastech CZ.1.07/1.128/ Nástrahy virtuální reality (pracovní list)

Kontrola vzorků CD audio a CD-ROM Vyhodnocenítypických vad povinných výtisků CD archivovaných v NK

VYSOKÁ ŠKOLA FINANČNÍ A SPRÁVNÍ, o.p.s. Fakulta ekonomických studií katedra řízení podniku. Předmět: ŘÍZENÍ LIDSKÝCH ZDROJŮ (B-RLZ)

1 METODICKÉ POKYNY AD HOC MODUL 2007: Pracovní úrazy a zdravotní problémy související se zaměstnáním

Č e s k ý m e t r o l o g i c k ý i n s t i t u t Okružní 31,

Kritéria zelených veřejných zakázek v EU pro zdravotnětechnické armatury

1.2.5 Reálná čísla I. Předpoklady:

Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů

Dodatečné informace č. 3 k zadávacím podmínkám

Vyvažování tuhého rotoru v jedné rovině přístrojem Adash Vibrio

6і1 Taylorova formule.. C p.1/5

NEJČASTĚJŠÍ POCHYBENÍ PŘI PODÁNÍ ŽÁDOSTI O PODPORU V RÁMCI INTEGROVANÉHO REGIONÁLNÍHO OPERAČNÍHO PROGRAMU, SC 2.5, VÝZVA Č

doc. Ing. Martin Hynek, PhD. a kolektiv verze Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky

Národní informační středisko pro podporu kvality Tůmová

Pracovní návrh. VYHLÁŠKA Ministerstva práce a sociálních věcí. ze dne o hygienických požadavcích na prostory a provoz dětské skupiny do 12 dětí

Databázové a informační systémy

Řízení kalibrací provozních měřicích přístrojů

3. Dynamika. Obecné odvození: a ~ F a ~ m. Zrychlení je přímo úměrné F a nepřímo úměrné m Výpočet síly a stanovení jednotky newton. F = m.

S M L O U V U o poskytnutí účelové dotace č. HS 31/2015. podle 10a zák. č. 250/2000 Sb., ve znění pozdějších předpisů

Těhotenský test pro zrakově postižené Tereza Hyková

Zapojením ÚKZÚZ se zvýší transparentnost a efektivita kontrol ekologických podniků

Mikromarz. CharGraph. Programovatelný výpočtový měřič fyzikálních veličin. Panel Version. Stručná charakteristika:

SYLABUS PŘEDNÁŠKY 6b Z INŽENÝRSKÉ GEODÉZIE (Polohové vytyčování) 4. ročník bakalářského studia studijní program G studijní obor G

Odůvodnění veřejné zakázky dle 156 zákona. Odůvodnění účelnosti veřejné zakázky dle 156 odst. 1 písm. a) zákona; 2 Vyhlášky 232/2012 Sb.

NÁVOD K OBSLUZE MODULU VIDEO 64 ===============================

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE

MEZINÁRODNÍ AUDITORSKÝ STANDARD ISA 505 EXTERNÍ KONFIRMACE OBSAH

Transkript:

1 3Datov struktury 0 3vod. Z kladn probl : Reprezentace no 0 6in a operace s nii. V 0 0ad loh a algorit 0 1 je tento podprobl rozhoduj c pro slo 0 6itost 0 0e 0 8en, proto 0 6e tyto operace se nohokr t opakuj. Proto je t 0 0eba navrhnout pro tyto lohy co nejefektivn j 0 8 algority ka 0 6d 0 5 u 0 8et 0 0en 0 5 0 0as nohon sobn 0 5 opakov n za 0 0ne hr t d 0 1le 0 6itou roli. To vede k detailn anal 0 5ze slo 0 6itosti v z vislosti na vn j 0 8 ch okolnostech. Nelze 0 0 ct, 0 6e n kter 0 5 algoritus je nejlep 0 8, proto 0 6e za ur 0 0it 0 5ch okolnost 0 1 0 6e b 0 5t n efektivn algoritus v 0 5hodn j 0 8. 0 9e 0 8 e tzv. slovn kov 0 5 probl : D no univerzu U, e reprezentovat S 6ш7 U a navrhnout algority pro n sleduj c operace MEMBERx C zjist, zda x й S, a nalezne jeho ulo 0 6en INSERTx C kdy 0 6 x / й S, pak vlo 0 6 x do struktury reprezentuj c S DELETEx C kdy 0 6 x й S, pak odstran x ze struktury reprezentuj c S. Efektivita algoritu: 0 0asov slo 0 6itost, prostorov slo 0 6itost; vy 0 8et 0 0en bu 0 v nejhor 0 8 p 0 0 pad nebo v pr 0 1 rn p 0 0 pad nebo aortizovan. Literatura: K. Mehlhorn: Data Structures and Algoriths 1: Sorting and Searching, Springer 1984 http://www.pi-sb.pg.de/ 6у5 ehlhorn/datalgbooks.htl J. S. Vitter, W.-Ch. Chen: Design and Analysis of Coalesced Hashing, Oxford Univ. Press, 1987 1

1 3 Ha 0 8ov n Pooc bitov ho pole 0 1 0 6ee rychle ipleentovat operace MEMBER, INSERT a DELETE. Nev 0 5hoda: kdy 0 6 je velk univerzu, pak je prostorov slo 0 6itost v nejlep 0 8 p 0 0 pad ohron, ve 0 8patn p 0 0 pad nelze pole zadat do po 0 0 ta 0 0e. Ha 0 8ov n chce zachovat rychlost operac, ale odstranit pa 0 ovou n ro 0 0nost. Prvn publikovan 0 5 0 0l nek o ha 0 8ov n je od Duney z roku 1956, prvn anal 0 5za ha 0 8ov n poch z od Petersona z roku 1957, ale existuje technick zpr va od IBM o ha 0 8ov n z roku 1953. Z kladn idea: D no univerzu U a no 0 6ina S 6ш7 U tak, 0 6e S << U. M e funkci h : U 6с1 З {0,1,..., 6с11} a no 0 6inu S reprezentujee tabulkou pole s 0 0 dky tak, 0 6e s й S je ulo 0 6en na 0 0 dku hs. Nev 0 5hoda: ohou existovat r 0 1zn s,t й S takov, 0 6e hs = ht - tento jev se naz 0 5v kolize. Hlavn probl : 0 0e 0 8en koliz. Z kladn 0 0e 0 8en : pou 0 6ijee pole o velikosti [0.. 6с11] a i-t polo 0 6ka pole bude spojov 0 5 sezna obsahuj c v 0 8echny prvky s й S takov, 0 6e hs = i. Toto 0 0e 0 8en se naz 0 5v ha 0 8ov n se separovan 0 5i 0 0et zci. P 0 0 klad: U = {1,,...,1000}, S = {1,7,11,53,73,141,161} a funkce je hx = x od 10. Pak P 0 = P = P 4 = P 5 = P 6 = P 8 = P 9 = 6р1, P 7 =< 7 >, P 3 =< 53,73 >, P 1 =< 1,141,11,161>. Seznay neus b 0 5t uspo 0 0 dan. Algority operac. MEMBERx: Spo 0 0 t e i := hx, t := NIL if i-t 0 5 sezna je nepr zdn 0 5 then t :=prvn prvek i-t ho seznau while t ы x a t ыposledn prvek i-t ho seznau do t :=n sleduj c prvek i-t ho seznau enddo if t = x then V 0 5stup: x й S else V 0 5stup: x / й S INSERTx: Spo 0 0 t e i := hx, t := NIL if i-t 0 5 sezna je nepr zdn 0 5 then t :=prvn prvek i-t ho seznau while t ы x a t ыposledn prvek i-t ho seznau do t :=n sleduj c prvek i-t ho seznau enddo if t ы x then vlo 0 6 e x do i-t ho seznau

1 33 DELETEx: Spo 0 0 t e i := hx, t := NIL if i-t 0 5 sezna je nepr zdn 0 5 then t :=prvn prvek i-t ho seznau while t ы x a t ыposledn prvek i-t ho seznau do t :=n sleduj c prvek i-t ho seznau enddo if t = x then odstran e x z i-t ho seznau V n sleduj c anal 0 5ze p 0 0edpokl d e, 0 6e hodnota funkce hx je spo 0 0itateln v 0 0ase O1. V nejhor 0 8 p 0 0 pad operace vy 0 6aduj 0 0as O S v 0 8echny prvky jsou v jedno seznau. Po 0 6adovan pa 0 ov n ro 0 0nost O + S p 0 0edpokl d e, 0 6e reprezentace prvku s й S vy 0 6aduje pa 0 O1 pa 0 nen efektivn vyu 0 6it Spo 0 0 t e o 0 0ek vanou d lku 0 0et zc 0 1 za p 0 0edpoklad 0 1 1 h je rychle spo 0 0itateln tj. O1 a ne nn b he v 0 5po 0 0tu; h rozd luje univerzu U rovno rn tj. 6с11 э h 6с11 i 6с1 h 6с11 j э 1 pro i,j й {0,1,..., 6с11}; 3 S je n hodn vybran z univerza U tj. pro dan n = S jsou v 0 8echny podno 0 6iny U o velikosti n reprezentovanou no 0 6inou S se stejnou pravd podobnost ; 4 ka 0 6d 0 5 prvek z U stejnou pravd podobnost b 0 5t arguente operace; 5 velikost reprezentovan no 0 6iny je v 0 5razn en 0 8 ne 0 6 velikost univerza. Pou 0 6it zna 0 0en : S = n, =po 0 0et 0 0et zc 0 1, U = N, li =d lka i-t ho 0 0et zce, а = n faktor napln n load factor D 0 1sledky p 0 0edpoklad 0 1: Probhx = i = 1 pro v 0 8echna x й U a v 0 8echna i = 0,1,..., 6с11; Probli = l = p n,l = n 1 l l 1 6с1 1 n 6с1l pro v 0 8echna i = 0,1,..., 6с11. Vysv tlen : i-t 0 5 0 0et zec d lku l, pr v kdy 0 6 existuje podno 0 6ina A 6ш7 S takov, 0 6e A = l t chto o 0 6nost je n l, pro ka 0 6d x й A plat hx = i pravd podobnost tohoto jevu je 1 l a pro ka 0 6d x й S \ A plat hx ы i pravd podobnost tohoto jevu je 1 6с1 1 n 6с1l. To znaen, 0 6e jev binoi ln rozd len.

1 34 O 0 0ek van d lka 0 0et zc 0 1. El = n lp n,l = l=0 l=1 n l n 1 l 1 6с1 1 n 6с1l = l l=0 1 n n! l l!n 6с1l! l=0 n n n 6с11! 1 l 6с11!n 6с1l! l=1 n n n 6с11 1 l 6с11 n n n 6с11 n 6с11 1 l l=0 1 +1 6с1 1 l 1 6с1 1 n 6с1l = l 6с11 1 6с1 1 n 6с1l = l 6с11 1 6с1 1 n 6с11 6с1l 6с11 = l 1 6с1 1 n 6с11 6с1l = n 6с11 = n. Toto je standardn eleent rn v 0 5po 0 0et o 0 0ek van hodnoty binoi ln ho rozd len. V 0 5po 0 0et druh ho oentu. V 0 5po 0 0et rozptylu. E l =Ell 6с11+El, n l n 1 Ell 6с11 = ll 6с11 1 6с1 1 n 6с1l = l l=0 nn 6с11 nn 6с11 nn 6с11, E l = nn 6с11 n l= l 6с1 n 6с1 1 1 6с1 1 n 6с1 6с1l 6с1 = l 6с1 n 6с1 n 6с1 l l=0 + n = n 1 l 1 6с1 1 n 6с1 6с1l = 1+ n 6с11. varl =El 6с1El = E l 6с1El = n 1+ n 6с11 n n 6с1 = 1 6с1 1.

1 3Shrnee v 0 5sledky: O 0 0ek van d lka 0 0et zc 0 1 je n a rozptyl d lky 0 0et zc 0 1 je n 1 6с1 1. Toto jsou standardn eleent rn odvozen druh ho oentu a rozptylu binoi ln ho rozd len. O 0 0ek van 0 5 nejhor 0 8 p 0 0 pad. Spo 0 0 t e EN P o 0 0ek vanou d lku axi ln ho 0 0et zce. Ozna 0 0e li d lku i-t ho 0 0et zce. Pak Prob ax i Pak 0 1 0 6ee po 0 0 tat: ENP = j j li = j = Prob j j j jprob Prob jprob jprob ax i ax i ax i ax i j 6с1j +1Prob j j Prob ax i ax i li = j = li щ j 6с1Prob li щ j 6с1Prob li щ j 6с1 j li щ j 6с1 j li щ j ax i. jprob ax i ax i li щ j +1. li щ j +1 = ax i j 6с11Prob li щ j = li щ j +1 = ax i li щ j = Vysv tlen : P 0 0i 0 0tvrt rovnosti se v druh su zv t 0 8il index, p 0 0es kter 0 5 s 0 0 t e, o 1, v p t rovnosti se k sob daly koeficienty p 0 0i stejn 0 5ch pravd podobnostech ve dvou su ch. Odtud Probaxli щ j = i Probl1 щ j еl щ j е еl 6с11 щ j э j n 1 Probli щ j э = j i г j 6с11 k=0 n 6с1k j! j 6с11 1 n j 6с11 1 э n j!. Vysv tlen : Prvn nerovnost plyne z toho, 0 6e pravd podobnost disjunkce jev 0 1 je en 0 8 ne 0 6 sou 0 0et pravd podobnost jev 0 1, druh nerovnost plyne z toho, 0 6e i-t 0 5 0 0et zec d lku alespo j, jakile existuje podno 0 6ina A 6ш7 S takov, 0 6e A = j t chto o 0 6nost je n j a pro ka 0 6d x й A plat hx = i pravd podobnost tohoto jevu je 1 j. 5

1 36 D 0 1sledek. Prob ax i { n j 6с11 1 li щ j э in 1,n. j!} P 0 0edpoklad: а = n э 1. Uk 0 6ee, 0 6e pro dostate 0 0n velk n pro { } n j 6с11 1 j 0 = in j n j! э 1 plat j 0 э 8logn loglogn. Z n э 1 a z j j э j! plyne { } n j 6с11 1 in j n j! э 1 э in {j nj! } { э 1 э in j n э j j} pro ka 0 6d n щ 1, kde j prob h p 0 0irozen 0 0 sla. Pro pevn n ozna 0 0e k +1 = in { j n э j} j, pak k k < n э k +1 k+1. Nyn toto dvakr t zlogaritujee a proto 0 6e logaritus je rostouc funkce, dost v e log k k +loglog k log < logn э k +1 k +1 log k k +1 k +1 < loglogn э log +loglog Za p 0 0edpokladu, 0 6e k щ 3, tak dost v e, 0 6e loglogn < log k+1, a odtud plyne proto 0 6e pro k щ 3 je 1 < logk log k+1 k 8 < k 4 log k log k+1 aproxiace logj!, lze dok zat, 0 6e j 0 < 1+a j < logn loglogn,.. P 0 0i sofistikovan j 0 8 etod, kdy 0 6 se pou 0 6ije Stirlingova logn loglogn, kde li j 6х6 З чa j = 0.

1 37 Toto pou 0 6ijee p 0 0i odhadu ENP. ENP = j j j 0 j=1 Prob ax i li щ j э { n j 6с11 1 in 1,n = j!} 1+ j 0 + n j 0! j 0 + ч j=j 0 +1 ч j=j 0 +1 n j 6с11 1 n э j 0 + j! j 0! j! э j 0 + j=j 0 +1 1 j 0 +1 6с1 1 j 0 +1 +1 = j 0 + 1 j 0 = Oj 0. ч j=j 0 +1 n j! = j 6с1j0 1 = j 0 +1 Vysv tlen : P 0 0i druh nerovnosti jse pou 0 6ili, 0 6e n э 1, p 0 0i t 0 0et nerovnosti jse pou 0 6ili, 0 6e n j 0! э 1 a j 6с1j0 j 0! 1 1 = г j! j k=j k э. j 0 +1 0+1 Shrnee z skan 0 5 v 0 5sledek V ta. Za p 0 0edpokladu а = n э 1 je p 0 0i ha 0 8ov n se separovan 0 5i 0 0et zci horn odhad o 0 0ek van d lky axi ln ho 0 0et zce O. logn loglogn Kdy 0 6 0.5 э а э 1, je to z rove i doln odhad. O 0 0ek van 0 5 po 0 0et test 0 1. Test je porovn n arguentu operace s prvke na dan st 0 0et zce nebo zji 0 8t n, 0 6e vy 0 8et 0 0ovan 0 5 0 0et zec je pr zdn 0 5. Budee rozli 0 8ovat dva p 0 0 pady: sp 0 8n vyhled v n C arguent operace je ezi prvky reprezentovan no 0 6iny, ne sp 0 8n vyhled v n C arguent operace nen ezi prvky reprezentovan no 0 6iny. Ne sp 0 8n vyhled v n. O 0 0ek van 0 5 po 0 0et test 0 1: ET =Probli = 0+ l lprobli = l = p n,0 + lp n,l = l 1 6с1 1 n + n ж e 6с1 а + а.

1 38 Vysv tlen : Zji 0 8t n, zda 0 0et zec je pr zdn 0 5, vy 0 6aduje jeden test, tj. Probli = 0 nen s koeficiente 0, ale 1. Proto 0 6e pravd podobnosti jsou stejn pro v 0 8echny 0 0et zce, neus e specifikovat 0 0et zec, kter 0 5 vy 0 8et 0 0ujee, sta 0 0 ps t obecn i. l lp n,l jse spo 0 0 tali p 0 0i v 0 5po 0 0tu o 0 0ek van d lky 0 0et zce. 0 3sp 0 8n vyhled v n. Zvole jeden 0 0et zec prvk 0 1 o d lce l. Po 0 0et test 0 1 p 0 0i vyhled n v 0 8ech prvk 0 1 v toto 0 0et zci je l+1 1++ +l =. O 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i vyhled n v 0 8ech prvk 0 1 v n jak 0 0et zci je l+1 Probli = l = l+1 p n,l. l l O 0 0ek n 0 5 po 0 0et test 0 1 p 0 0i vyhled n v 0 8ech prvk 0 1 v tabulce je l+1 l pn,l. O 0 0ek van 0 5 po 0 0et test 0 1 pro vyhled n jednoho prvku je n l+1 p n,l = n n l p n,l + lp n,l = n n l=0 l=0 l=0 n n ll 6с11p n,l + lp n,l = n l=1 l=1 nn 6с11 + n = n 6с11 n +1 ж 1+ а. Jin 0 5 postup: Po 0 0et test 0 1 p 0 0i sp 0 8n vyhled v n prvku x й S je 1+po 0 0et porovn n kl 0 0 0 1 p 0 0i ne sp 0 8n vyhled v n x v operaci INSERTx. Po 0 0et porovn n kl 0 0 0 1 je d lka 0 0et zce, a proto o 0 0ek van 0 5 po 0 0et porovn n kl 0 0 0 1 je o 0 0ek van d lka 0 0et zce. Tedy o 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i sp 0 8n vyhled v n x je 1+o 0 0ek van d lka 0 0et zce v oka 0 6iku vkl d n x, neboli 1 n n 6с11 1+ i = 1+ n 6с11. V ta. P 0 0i ha 0 8ov n se separovan 0 5i 0 0et zci je o 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i ne spe 0 8n vyhled van p 0 0ibli 0 6n e 6с1 а + а a p 0 0i sp 0 8n vyhled v n p 0 0ibli 0 6n 1+ а. N sleduj c tabulka d v p 0 0ehled o 0 0ek van ho po 0 0tu test 0 1 pro r 0 1zn hodnoty а а 0 0.1 0. 0.3 0.4 0.5 0.6 ne sp. vyh. 1 1.005 1.019 1.041 1.07 1.107 1.149 sp 0 8. vyh. 1 1.05 1.1 1.15 1. 1.5 1.3 а 0.7 0.8 0.9 1 3 ne sp. vyh. 1.196 1.49 1.307 1.368.135 3.05 sp 0 8. vyh. 1.35 1.4 1.45 1.5.5

1 3V 0 8in te si, 0 6e o 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i ne sp 0 8n vyhled v n je en 0 8 ne 0 6 o 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i sp 0 8n vyhled v n, kdy 0 6 а э 1. Na prvn pohled vypad tento v 0 5sledek nesysln, ale d 0 1vod je, 0 6e po 0 0et test 0 1 p 0 0i sp 0 8n vyhled v n pr 0 1 rujee proti n, kde 0 6to p 0 0i ne sp 0 8n vyhled v n proti. Ilustrujee to na n sleduj c p 0 0 kladu: Nech 0 n = a nech 0 polovina nepr zdn 0 5ch 0 0et zc 0 1 d lku 1 a polovina d lku. O 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i ne sp 0 8n vyhled van : 1 test pro pr zdn 0 0et zce a 0 0et zce d lky 1 C t chto p 0 0 pad 0 1 je 5 6 testy pro 0 0et zce d lky C t chto p 0 0 pad 0 1 je 6. O 0 0ek van 0 5 po 0 0et test 0 1 je 1 1 5 6 + 6 = 7 6. O 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i sp 0 8n vyhled v n : 1 test pro prvky na prvn st 0 0et zce C t chto p 0 0 pad 0 1 je n 3 testy pro prvky, kter jsou na druh st 0 0et zce C t chto p 0 0 pad 0 1 je n 3. O 0 0ek van 0 5 po 0 0et test 0 1 je 1 n 1 n 3 +n 3 = 4 3. Velikost а je doporu 0 0ov na en 0 8 ne 0 6 1, ale ne b 0 5t hodn al, proto 0 6e by pa 0 nebyla efektivn vyu 0 6ita. Ha 0 8ov n s uspo 0 0 dan 0 5i separovan 0 5i 0 0et zci Vylep 0 8en etody: ha 0 8ov n s uspo 0 0 dan 0 5i 0 0et zci. Rozd l proti p 0 1vodn etod C 0 0et zce jsou uspo 0 0 dan ve vzr 0 1staj c po 0 0ad. Proto 0 6e 0 0et zce obsahuj tyt 0 6 prvky, je po 0 0et o 0 0ek van 0 5ch test 0 1 p 0 0i sp 0 8n vyhled v n stejn 0 5 jako u neuspo 0 0 dan 0 5ch 0 0et zc 0 1. P 0 0i ne sp 0 8n vyhled v n kon 0 0 e, kdy 0 6 arguent operace je en 0 8 ne 0 6 vy 0 8et 0 0ovan 0 5 prvek v 0 0et zci, tedy kon 0 0 e d 0 0 v. N sleduj c v ta bez d 0 1kazu uv d o 0 0ekavan 0 5 po 0 0et test 0 1 v ne sp 0 8n p 0 0 pad. V ta. O 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i ne sp 0 8n vyhled v n pro ha 0 8ov n s uspo 0 0 dan 0 5i 0 0et zci je p 0 0ibli 0 6n e 6с1 а + 1 + а 6с1 1 а 1 6с1e 6с1 а. O 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i sp 0 8n vyhled v n pro ha 0 8ov n s uspo 0 0 dan 0 5i 0 0et zci je p 0 0ibli 0 6n 1+ а. Uvedee algority pro operace s uspo 0 0 dan 0 5i 0 0et zci. Algority. MEMBERx: Spo 0 0 t e i := hx, t := NIL if i-t 0 5 sezna je nepr zdn 0 5 then t :=prvn prvek i-t ho seznau while t < x a t ыposledn prvek i-t ho seznau do t :=n sleduj c prvek i-t ho seznau enddo if t = x then x й S else x / й S INSERTx: Spo 0 0 t e i := hx, t := NIL if i-t 0 5 sezna je nepr zdn 0 5 then t :=prvn prvek i-t ho seznau 9

1 310 while t < x a t ыposledn prvek i-t ho seznau do t :=n sleduj c prvek i-t ho seznau enddo if t ы x then if x < t then vlo 0 6 e x do i-t ho seznau p 0 0ed prvek t else vlo 0 6 e x do i-t ho seznau za prvek t DELETEx: Spo 0 0 t e i := hx, t := NIL if i-t 0 5 sezna je nepr zdn 0 5 then t :=prvn prvek i-t ho seznau while t < x a t ыposledn prvek i-t ho seznau do t :=n sleduj c prvek i-t ho seznau enddo if t = x then odstran e x z i-t ho seznau Nev 0 5hody ha 0 8ovan se separovan 0 5i 0 0et zci C nevyu 0 6it alokovan pa ti nehospod rn pou 0 6 v n ukazatel 0 1 cache. 0 9e 0 8en : vyu 0 6 t pro 0 0et zce p 0 1vodn tabulku. Polo 0 6ky tabulky: key, odkaz na ulo 0 6en data, polo 0 6ky pro pr ci s tabulkou. P 0 0edpokl d e, 0 6e data jsou velk, v to p 0 0 pad se ukl daj io tabulku. V tabulce je jen odkaz na ulo 0 6en data. P 0 0i popisu pr ce s tabulkou tuto 0 0 st budee vynech vat tj. data budou pouze kl 0 0. Podle 0 0e 0 8en kolize d l e d l ha 0 8ov n : ha 0 8ov n s p 0 0e s 0 ov n, ha 0 8ov n s dv a ukazateli, sr 0 1staj c ha 0 8ov n, dvojit ha 0 8ov n a ha 0 8ov n s line rn p 0 0id v n. Ha 0 8ov n s p 0 0e s 0 ov n Polo 0 6ky pro pr ci s tabulkou: next, previous polo 0 6ka next C 0 0 slo 0 0 dku tabulky obsahuj c n sleduj c polo 0 6ku seznau polo 0 6ka previous C 0 0 slo 0 0 dku tabulky obsahuj c p 0 0edch zej polo 0 6ku seznau. P 0 0 klad: U = {1,,...,1000}, hx = x od 10, ulo 0 6en no 0 6ina S = {1,7,11,53,73,141,161},

1 311 0 0et zce: P 1 = 1,141,11,161, P 3 = 73,53, P 7 = 7. Ha 0 8ovac tabulka: 0 0 dek key next previous P0 P1 1 9 P P3 73 6 P4 P5 161 8 P6 53 3 P7 7 P8 11 5 9 P9 141 8 1 Tabulka vznikla n sleduj c posloupnost operac : INSERT1, INSERT141, INSERT11, INSERT73, INSERT53, INSERT7, INSERT161. Algority. MEMBERx: Spo 0 0 t e i := hx if i.previous ыpr zdn nebo i.key =pr zdn then V 0 5stup: x / й S, stop while i.next ыpr zdn a i.key ы x do i := i.next enddo if i.key = x then V 0 5stup: x й S else V 0 5stup: x / й S DELETEx: Spo 0 0 t e i := hx if i.previous ыpr zdn nebo i.key =pr zdn then stop while i.next ыpr zdn a i.key ы x do i := i.next enddo if i.key = x then if i.previous ыpr zdn then i.previous.next := i.next if i.next ыpr zdn then i.next.previous := i.previous i.key := i.next := i.previous := pr zdn else if i.next ыpr zdn then i.key := i.next.key, i.next := i.next.next if i.next.next ыpr zdn then i.next.next.previous := i i.next.key := i.next.next := i.next.previous := pr zdn else i.key := pr zdn

1 31 INSERTx: Spo 0 0 t e i := hx if i.previous ы NIL nebo i.key = NIL then if i.key = NIL then i.key := x else if neexistuje pr zdn 0 5 0 0 dek tabulky then V 0 5stup: p 0 0epln n, stop else nech 0 j je voln 0 5 0 0 dek tabulky j.key := i.key, j.previous := i.previous, j.next := i.next j.previous.next := j if j.next ы NIL then j.next.previous := j i, key := x, i.next := i.previous :=pr zdn stop while i.next ы NIL a i.key ы x do i := i.next enddo if i.key ы x then if neexistuje pr zdn 0 5 0 0 dek tabulky then V 0 5stup: p 0 0epln n, stop else nech 0 j je voln 0 5 0 0 dek tabulky i.next := j, j.key := x, j.previous := i, stop V p 0 0 kladu provedee INSERT8, nov 0 5 0 0 dek je 4. 0 0 dek C v 0 5sledn ha 0 8ovac tabulka 0 0 dek key next previous P0 P1 1 9 P P3 73 6 P4 11 5 9 P5 161 4 P6 53 3 P7 7 P8 8 P9 141 4 1

1 3O 0 0ek van 0 5 po 0 0et test 0 1 je stejn 0 5 jako pro ha 0 8ov n se separovan 0 5i 0 0et zci: n 6с11 sp 0 8n vyhled v n : +1 ж 1+ а ne sp 0 8n vyhled v n : 1 6с1 1 n + n ж e 6с1 а + а, kde = velikost tabulky, n = velikost S tj. po 0 0et ulo 0 6en 0 5ch prvk 0 1, а = n = faktor zapln n. Ha 0 8ov n s dv a ukazateli Nev 0 5hoda ha 0 8ov n s p 0 0e s 0 ov n je krok 5 v operaci INSERT. Vy 0 6aduje v ce 0 0asu C operace s p 0 0e st n polo 0 6ky. Toto odstra uje dal 0 8 ipleentace ha 0 8ov n se separuj c i 0 0et zci. Polo 0 6ky pro pr ci s tabulkou C next, begin Polo 0 6ka next C 0 0 slo 0 0 dku tabulky obsahuj c n sleduj c polo 0 6ku seznau Polo 0 6ka begin C 0 0 slo 0 0 dku tabulky obsahuj c prvn polo 0 6ku seznau s touto adresou Stejn data jako v inul p 0 0 pad Ha 0 8ovac tabulka: 0 0 dek key next begin P0 P1 1 9 1 P P3 73 7 3 P4 P5 161 P6 7 P7 53 6 P8 11 5 P9 141 8 Tabulka vznikla n sleduj c posloupnost operac : INSERT1, INSERT141, INSERT11, INSERT73, INSERT53, INSERT7, INSERT161. Algority. MEMBERx: Spo 0 0 t e i := hx if i.begin = pr zdn then V 0 5stup: x / й S, stop else i := i.begin while i.next ы pr zdn a i.key ы x do i := i.next enddo if i.key = x then 13

1 314 V 0 5stup: x й S else V 0 5stup: x / й S DELETEx: Spo 0 0 t e i := hx if i.begin =pr zdn then stop else j := i, i := i.begin while i.next ыpr zdn a i.key ы x do j := i, i := i.next enddo if i.key = x then if i = j.begin then if i.next ыpr zdn then j.begin := i.next else j.begin :=pr zdn else j.next := i.next i.key := i.next :=pr zdn INSERTx: Spo 0 0 t e i := hx if i.begin =pr zdn then if i.key =pr zdn then i.key := x, i.begin := i else if neexistuje pr zdn 0 5 0 0 dek tabulky then V 0 5stup: p 0 0epln n, stop else nech 0 j je voln 0 5 0 0 dek tabulky j.key = x, i.begin := j else i := i.begin while i.next ыpr zdn a i.key ы x do i := i.next enddo if i.key ы x then if neexistuje pr zdn 0 5 0 0 dek tabulky then V 0 5stup: p 0 0epln n, stop else nech 0 j je voln 0 5 0 0 dek tabulky, i.next := j, j.key := x, stop

1 315 V p 0 0 kladu provedee INSERT8, nov 0 5 0 0 dek je 4. 0 0 dek C v 0 5sledn ha 0 8ovac tabulka 0 0 dek key next begin P0 P1 1 9 1 P P3 73 7 3 P4 8 P5 161 P6 7 P7 53 6 P8 11 5 4 P9 141 8 Algoritus p 0 0i pr ci s polo 0 6kai je rychlej 0 8 ne 0 6 p 0 0i ha 0 8ov n s p 0 0e s 0 ov n, ale za 0 0 tek 0 0et zce v jin st tabulky p 0 0id v jeden test. V 0 5sledek bez odvozov n : O 0 0ek van 0 5 po 0 0et test 0 1: sp 0 8n 0 5 p 0 0 pad: 1+ n 6с11n 6с1 + n 6с11 6 ж 1+ а 6 + а ne sp 0 8n 0 5 p 0 0 pad: ж 1+ а + а+e 6с1 а + а 6с1. Sr 0 1staj c ha 0 8ov n Sr 0 1staj c ha 0 8ov n se d l podle pr ce s pa t na standardn a na sr 0 1staj c ha 0 8ov n s poocnou pa t kter se naz 0 5va jen sr 0 1staj c ha 0 8ov n a podle zp 0 1sobu p 0 0id v n dal 0 8 ho prvku. Pop 0 8ee etody: Standardn sr 0 1staj c ha 0 8ov n : LISCH, EISCH, Sr 0 1staj c ha 0 8ov n : LICH, VICH, EICH. V 0 8echny etody pro pr ci s tabulkou pou 0 6 vaj jen polo 0 6ku next C 0 0 slo 0 0 dku tabulky obsahuj c n sleduj c polo 0 6ku seznau. Z kladn idea: 0 0et zec za 0 0 n na sv st, ale pokud u 0 6 ta byl ulo 0 6en n jak 0 5 daj, pak 0 0et zec tohoto daje sroste s 0 0et zce za 0 0 naj c na toto 0 0 dku. To znaen, 0 6e prvky 0 0et zce, kter 0 5 za 0 0 n na toto st budou ulo 0 6eny v 0 0et zci, kter 0 5 u 0 6 je ulo 0 6en na toto st, ale jen od tohoto sta d l. Metody EISCH a LISCH. EISCH C early-insertion standard coalesced hashing LISCH C late-insertion standard coalesced hashing. Organizace tabulky je stejn jako v p 0 0edchoz ch p 0 0 padech. Z kladn ideje: LISCH p 0 0id v nov 0 5 prvek na konec 0 0et zce, EISCH p 0 0id v nov 0 5 prvek x do 0 0et zce za 0 0 dke hx.

1 316 P 0 0 klad: U = {1,,...,1000}, hx = x od 10 no 0 6ina S = {1,7,11,53,73,141,171} je ulo 0 6ena v ha 0 8ovac tabulce 0 0 dek key next P0 P1 1 9 P P3 73 6 P4 P5 7 P6 53 P7 161 5 P8 11 7 P9 141 8 Tabulka pro etodu LISCH vznikla n sleduj c posloupnost operac : INSERT1, INSERT141, INSERT11, INSERT73, INSERT53, INSERT161, INSERT7. Pro etodu EISCH tabulka vznikla n sleduj c posloupnost operac : INSERT1, INSERT161, INSERT11, INSERT73, INSERT53, INSERT7, INSERT141. Provedee INSERT8, p 0 0id v e do 0 0vrt ho r dku, v 0 5sledn tabulka vlevo je pro etodu LISCH, vpravo pro etodu EISCH. 0 0 dek key next P0 P1 1 9 P P3 73 6 P4 8 P5 7 4 P6 53 P7 161 5 P8 11 7 P9 141 8 0 0 dek key next P0 P1 1 9 P P3 73 6 P4 8 7 P5 7 P6 53 P7 161 5 P8 11 4 P9 141 8 Algority. Algoritus operace MEMBER je pro ob etody stejn 0 5. MEMBERx: Spo 0 0 t e i := hx while i.next ыpr zdn a i.key ы x do i := i.next enddo if i.key = x then V 0 5stup: x й S else V 0 5stup: x / й S

1 317 Metoda LISCH C INSERTx: Spo 0 0 t e i := hx while i.next ыpr zdn a i.key ы x do i := i.next enddo if i.key ы x then if neexistuje pr zdn 0 5 0 0 dek tabulky then V 0 5stup: p 0 0epln n, stop else nech 0 j je pr zdn 0 5 0 0 dek, j.key := x, i.next := j Metoda EISCH C INSERTx: Spo 0 0 t e k := i := hx while i.next ыpr zdn a i.key ы x do i := i.next enddo if i.key ы x then if neexistuje pr zdn 0 5 0 0 dek tabulky then V 0 5stup: p 0 0epln n, stop else nech 0 j je voln 0 5 0 0 dek tabulky j.next := k.next, k.next := j, j.key := x Efektivn operace DELETE nen zn, ale i priitivn algority pro operaci DELETE aj rozunou o 0 0ek vanou 0 0asovou slo 0 6itost. Anal 0 5za slo 0 6itosti t chto algorit 0 1.. Popis situace: Ulo 0 6ena no 0 6ina S = {s 1,s,...,s n } do tabulky velikosti, je d n prvek s n+1 a e zjistit, zda s n+1 й S. Ozna 0 0e a i = hs i pro i = 1,,...,n +1, kde h je pou 0 6it ha 0 8ovac funkce. P 0 0edpoklad: v 0 8echny posloupnosti a 1,a,...,a n+1 jsou stejn pravd podobn. V 0 5b r pr zdn ho 0 0 dku je pevn dan 0 5, to znaen, 0 6e p 0 0i stejn obsazen 0 5ch 0 0adc ch dostanee v 0 6dy stejn 0 5 pr zdn 0 5 0 0 dek. Ne sp 0 8n vyhled v n s n+1 / й S.. Ozna 0 0en : Ca 1,a,...,a n ;a n+1 ozna 0 0uje po 0 0et test 0 1 pro zji 0 8t n, 0 6e s n+1 / й S. Plat : o 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i ne sp 0 8n vyhled v n v no 0 6in S je Ca1,a,...,a n ;a n+1 n+1, kde se s 0 0 t p 0 0es v 0 8echny posloupnosti a 1,a,...,a n+1 C a t ch je n+1. 0 9et zec d lky l v no 0 6in S je axi ln posloupnost adres b 1,b,...,b l takov, 0 6e b i.next = b i+1 pro i = 1,,...,l 6с11. Kdy 0 6 adresa a n+1 je i-t 0 5 prvek v 0 0et zci, pak po 0 0et test 0 1 je l 6с1i+1. Proto 0 0et zec d lky l p 0 0isp l k sou 0 0tu Ca 1,a,...,a n ;a n+1 celke po 0 0te test 0 1 1++ +l = l+ l.

1 318 c n l =po 0 0et v 0 8ech 0 0et zc 0 1d lkyl vev 0 8echreprezentac ch n-prvkov 0 5chno 0 6inztoto 0 6 ujee dv no 0 6iny, kter ly stejnou posloupnost adres p 0 0i ukl dan prvk 0 1, pak n l Ca1,a,...,a n ;a n+1 = c n 0+ l+ c n l l=1 n n l = c n 0+ lc n l+ c n l, kde c n 0 je po 0 0et pr zdn 0 5ch 0 0 dk 0 1 ve v 0 8ech reprezentac ch. Reprezentace S 6с1n pr zdn 0 5ch 0 0 dk 0 1, v 0 8ech posloupnost n-adres je n, proto l=1 c n 0 = 6с1n n. n l=1 lc nl je celkov d lka v 0 8ech 0 0et zc 0 1 ve v 0 8ech tabulk ch reprezentuj c ch v 0 8echny n- prvkov no 0 6iny a proto l=1 n lc n l = n n. l=1 Spo 0 0 t e S n = n l=1 l cn l. Nejprve rekurentn vztah pro c n l. P 0 0id v e prvek s adresou a n+1. Pak 0 0et zec d lky l v reprezentaci S z 0 1stal stejn 0 5, kdy 0 6 adresa a n+1 nele 0 6ela v toto 0 0et zci, v opa 0 0n p 0 0 pad se d lka 0 0et zce zv t 0 8ila na l+1. Proto p 0 0id n jednoho prvku vytvo 0 0ilo z 0 0et zce d lky l celke 6с1 l 0 0et zc 0 1 d lky l a l 0 0et zc 0 1 d lky l + 1. Vys 0 0 t n p 0 0es v 0 8echny n-prvkov posloupnosti adres dost v e c n+1 l = 6с1lc n l+l 6с11c n l 6с11. Odtud n l S n = c n l = l=1 n l l 6с1lc n 6с11 l+ l=1 n n 6с11 l l+1 6с1lc n 6с11 l + l=1 l=0 n 6с1nc n 6с11 n+ n 6с11 l=1 n 6с11 l=1 l l 6с1l+ l+1 +c n 6с11 l+ l n 6с11 l=1 +S n 6с11 +n 6с11 n 6с11, l 6с11c n 6с11 l 6с11 = c n 6с11 l lc n 6с11 l = lc n 6с11 l + = 1 0c n 6с11 0 =

1 319 kde jse pou 0 6ili, 0 6e c n 6с11 n = 0, a identitu 6с1l Rekurence pro S n d v l l+1 +l = 1 l 6с1l 6с1l 3 +l +l 3 +l = 1 l 6с1l+l = 1 l 6с1l+ l 6с1l +l = + S n =+S n 6с11 +n 6с11 n 6с11 = l +l. + S n 6с1 ++n 6с1 n 6с1 +n 6с11 n 6с11 = + 3 S n 6с13 ++ n 6с13 n 6с13 + +n 6с1 n 6с1 +n 6с11 n 6с11 = + n 6с11 S 0 + + n 6с11 n 6с11 n 6с11 n 6с11 6с1i + n 6с11 n 6с11 i=1 + i n 6с11 6с1i n 6с11 6с1i = i i, + n 6с11 6с1i = + kde jse vyu 0 6ili, 0 6e S 0 = 0. Spo 0 0 t e sou 0 0et Tc n = n i=1 ici pro n = 1,,... a c ы 1. Z ctc n = n i=1 ici+1 plyne n+1 c 6с11Tc n =ctn c 6с1Tn c = i 6с11c i 6с1 i= n ic i = i=1 n nc n+1 + i 6с11c i 6с1ic i 6с1c = i= n nc n+1 + 6с1c 6с1c i = nc n+1 6с1 i= n i=1 c i = nc n+1 6с1 cn+1 6с1c c 6с11 nc n+ 6с1n+1c n+1 +c. c 6с11 =

1 30 Tedy plat Proto 0 6e + ы 1, dost v e, 0 6e n 6с11 n 6с11 S n =+ [ 1 4 +n+1 n 6с11 T n c = ncn+ 6с1n+1c n+1 +c c 6с11. + n+1 n 6с1n + + + = + 6с11 + n+1 6с1n 1 [ n 6с11 n+1 6с1n+ n ++ n] = 4 1 + n 6с1 n+1 6с1n n. 4 ] n + = + + O 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i ne sp 0 8n vyhled v n je 6с1n n +n n + 1 4 + n 6с1 n+1 6с1n n = n+1 n+1 + 1 4 + n 6с1 n+1 6с1n n = n+1 1+ 1 1+ n 6с11 6с1 n 6у5 1+ 1 e а 6с11 6с1 а. 4 4 Tento odhad je stejn 0 5 pro ob etody C LISCH i EISCH, proto 0 6e aj stejn posloupnosti adres li 0 8 se jen po 0 0ad prvk 0 1 v jednotliv 0 5ch 0 0et zc ch. 0 3sp 0 8n 0 5 p 0 0 pad s n+1 й S. O 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i sp 0 8n vyhled v n v odelu LISCH spo 0 0 t e stejnou etodou jako pro ha 0 8ov n se separuj c i 0 0et zci. Pro vyhled n prvku s n+1 й S je po 0 0et test 0 1 roven 1+po 0 0et porovn n kl 0 0 0 1 p 0 0i operaci INSERTs n+1. Kdy 0 6 s n+1 je vlo 0 6en na sto hs n+1, nebyl porovn v n 0 6 dn 0 5 kl 0 0 a test bude 1, kdy 0 6 hs n+1 byl na na i-t st v 0 0et zci d lky l, pak bylo p 0 0i operaci INSERTs n+1 pou 0 6ito l 6с1i+1 porovn n kl 0 0 0 1 a te 0 se pou 0 6ije l 6с1i+ test 0 1. Podle p 0 0edchoz 0 0 sti anal 0 5zy dostanee, 0 6e o 0 0ek van 0 5 po 0 0et porovn n kl 0 0 0 1 p 0 0i ne sp 0 8n vyhled v n je 1 n+1 1 n+1 1 4 n l=1 l+ n n + 1 4 1+ l c n l = + n 6с1 n+1 6с1n n = n 6с11+ n.

1 3Tedy o 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i sp 0 8n vyhled v n v n-prvkov no 0 6in je podle p 0 0edchoz anal 0 5zy roven 1 + n-tina sou 0 0tu o 0 0ek van ho po 0 0tu porovn n kl 0 0 0 1 p 0 0i ne sp 0 8n vyhled v n v i-prvkov no 0 6in, kde i prob h 0 0 sla 0,1,...,n 6с1 1. Podle p 0 0edchoz ch v 0 5sledk 0 1 je hledan 0 5 sou 0 0et n 6с11 1 4 [ 1+ i 6с11+ i 8 ] = 1 4 1+ 1+ n 6с11 1+ 6с11 6с1 n 4 + n 6с11 6с1 n n = + n 6с1n 4. Tedy o 0 0ek van 0 5 po 0 0et test 0 1 v sp 0 8n p 0 0 pad pro n-prvkovou no 0 6inu je 1+ 8n 1+ n 6с11 6с1 n + n 6с11 4 6у5 1+ 1 e а 6с11 6с1 а + а 8 а 4. Pro etodu EISCH je o 0 0ek v n 0 5 po 0 0et test 0 1 v sp 0 8n p 0 0 pad n 1+ 1 n 6с11 6у5 1 а e а 6с11. V 0 5po 0 0et je ale koplikovan j 0 8 us se pou 0 6 t slo 0 6it j 0 8 etoda etoda EISCH d v nov 0 5 prvek hned za sto, kde b 0 5t ulo 0 6en. Chyba aproxiace pro tyto odhady je O 1. Metody LICH, EICH, VICH. LICH C late-insertion coalesced hashing EICH C early-insertion coalesced hashing VICH C varied-insertion coalesced hashing. Z kladn idea: Metody pou 0 6 vaj poocnou pa 0. Tabulka je rozd len na adresovac 0 0 st a na poocnou pa 0, kter nen dostupn pooc ha 0 8ovac funkce, ale po h p 0 0i 0 0e 0 8en koliz. Metody se li 0 8 operac INSERT. V 0 8echny etody p 0 0i kolizi nejprve pou 0 6ij 0 0 dek tabulky z poocn 0 0 sti a teprve, kdy 0 6 je poocn 0 0 st zapln na, pou 0 6 vaj adresovac 0 0 st. Metoda LICH: p 0 0i INSERTu vkl d prvek v 0 6dy na konec 0 0et zce. Metoda EICH: p 0 0i INSERTu vkl d prvek x do 0 0et zce v 0 6dy na sto hned za 0 0 dke hx. Metoda VICH: P 0 0i INSERTu, kdy 0 6 nov 0 5 0 0 dek je z poocn 0 0 sti, tak je vlo 0 6en s nov 0 5 prvke na konec 0 0et zce, kdy 0 6 je poocn 0 0 st pa ti vy 0 0erp na, tak se 0 0 dek s nov 0 5 prvke vkl d do 0 0et zce za posledn 0 0 dek z poocn 0 0 sti tabulky. Kdy 0 6 0 0et zec neobsahuje 0 6 dn 0 5 0 0 dek z poocn pa ti, tak se 0 0 dek s nov 0 5 prvke x vkl d hned za 0 0 dek hx. Idea: poocn 0 0 st zabr nit rychl u sr 0 1st n 0 0et zc 0 1. Tyto etody nepodporuj p 0 0irozen efektivn algority pro operaci DELETE. 1

1 3 P 0 0 klad: U = {1,,...,1000}, hx = x od 10, S = {1,7,11,53,73,141,161}. Tabulka 1 0 0 dk 0 1 a tvar 0 0 dek key next P0 P1 1 10 P P3 73 11 P4 P5 7 P6 P7 161 5 P8 11 7 P9 P10 141 8 P11 53 Ha 0 8ovac tabulka vznikla posloupnosti operac : Pro etodu LICH: INSERT1, INSERT73, INSERT141, INSERT53, INSERT11, INSERT161, INSERT7. Pro etodu EICH: INSERT1, INSERT73, INSERT161, INSERT53, INSERT11, INSERT141, INSERT7, ale nedodr 0 6ovalo se, 0 6e se nejd 0 0 v zapl uj 0 0 dky z poocn 0 0 sti. P 0 0i dodr 0 6ov n tohoto pravidla takov to tabulka ne 0 1 0 6e vzniknout. Pro etodu VICH: INSERT1, INSERT73, INSERT141, INSERT53, INSERT161, INSERT11, INSERT7. Aplikujee operace INSERT8 a INSERT31, nov 0 0 dky budou 0 0 dky 0 0 slo 4 a 9. Tabulka vytvo 0 0en pooc etody LICH je na lev stran, etodou VICH je v prost 0 0edku a etodou EICH je na prav stran.

1 33 0 0 dek key next P0 P1 1 10 P P3 73 11 P4 8 9 P5 7 4 P6 P7 161 5 P8 11 7 P9 31 P10 141 8 P11 53 Algority. 0 0 dek key next P0 P1 1 10 P P3 73 11 P4 8 7 P5 7 P6 P7 161 5 P8 11 4 P9 31 8 P10 141 9 P11 53 0 0 dek key next P0 P1 1 9 P P3 73 11 P4 8 7 P5 7 P6 P7 161 5 P8 11 4 P9 31 10 P10 141 8 P11 53 Algoritus operace MEMBER je pro tyto etody stejn 0 5 jako pro LISCH a EISCH MEMBERx: Spo 0 0 t e i := hx while i.next ыpr zdn a i.key ы x do i := i.next enddo if i.key = x then V 0 5stup: x й S else V 0 5stup: x / й S Algoritus operace INSERT je pro etodu LICH stejn 0 5 jako pro etodu LISCH a pro etodu EICH je stejn 0 5 jako pro etodu EISCH s jedin 0 5 dopl ke, pokud existuje pr zdn 0 5 0 0 dek v poocn 0 0 sti, tak j-t 0 5 0 0 dek je z poocn 0 0 sti. Tento p 0 0edpoklad je i pro algoritus INSERT pro etodu VICH. Metoda LICH C INSERTx: Spo 0 0 t e i := hx if i.next = NIL then i.next = x, stop while i.next ы NIL a i.key ы x do i := i.next enddo if i.key ы x then if neexistuje pr zdn 0 5 0 0 dek tabulky then p 0 0epln n, stop else nech 0 j je pr zdn 0 5 0 0 dek, j.key := x, i.next := j Metoda EICH C Insertx: Spo 0 0 t e k := i := hx if i.next = NIL then i.next = x, stop while i.next ы NIL a i.key ы x do i := i.next enddo if i.key ы x then if neexistuje pr zdn 0 5 0 0 dek tabulky then

1 34 p 0 0epln n, stop else nech 0 j je voln 0 5 0 0 dek tabulky j.next := k.next, k.next := j, j.key := x Metoda VICH C INSERTx: Spo 0 0 t e i := hx if i.next = NIL then i.next = x, stop while i.next ы NIL a i.key ы x do if k nen definov no a i.next < then k := i Pozn ka: Pod nka pro k je spln na, kdy 0 6 jse byli na za 0 0 tku nebo v poocn 0 0 sti, pod nka na i.next je spln na, kdy 0 6 i.next nen v poocn 0 0 sti. i := i.next enddo if i.key ы x then if neexistuje pr zdn 0 5 0 0 dek then p 0 0epln n, stop else nech 0 j je voln 0 5 0 0 dek, j.key := x if k nen definov no then i.next := j else j.next := k.next, k.next := j Slo 0 6itost algorit 0 1 pro sr 0 1staj c ha 0 8ov n. Zna 0 0en : n C velikost ulo 0 6en no 0 6iny, C velikost adresovac 0 0 sti tabulky, Д C velikost tabulky, а = n Д C faktor zapln n, б = Д C adresovac faktor, к C jedin nez porn 0 0e 0 8en rovnice e 6с1 к + к = 1 б. O 0 0ek van 0 5 po 0 0et test 0 1 pro etodu LICH ne sp 0 8n 0 5 p 0 0 pad: e 6с1 а б + а, kdy 0 6 а э к б, б e 6с1 к а б 6с11 3 6с1 б + к 1 б + 1 4 sp 0 8n 0 5 p 0 0 pad:, kdy 0 6 а э к б, e 6с1 к а б 6с11 6с1 1+ а б 1+ б 8 а 6с1 1 а б 6с1 к, kdy 0 6 а щ к б а б 6с1 к 3 6с1 б + к + 1 4 а б + + к к 4 1 6с1 к б а, kdy 0 6 а щ к б.

1 3O 0 0ek van 0 5 po 0 0et test 0 1 pro etodu EICH ne sp 0 8n 0 5 p 0 0 pad: e 6с1 а б + а, kdy 0 6 а э к б, б e а 6с1 к б 3 4 + к 6с1 1 б +e а 6с1 к б 1 б + 6с11 1 4 6с1 а б + 1 б, kdy 0 6 а щ к б sp 0 8n 0 5 p 0 0 pad: 1+ а б 1+ а б + б а, kdy 0 6 а э к б, e а б 6с1 к 6с11 1+ к 6с1 O 0 0ek van 0 5 po 0 0et test 0 1 pro etodu VICH ne sp 0 8n 0 5 p 0 0 pad: e 6с1 а б + а, kdy 0 6 а э к б, б e 6с1 к а б 6с11 3 6с1 б + к 1 б + 1 4 sp 0 8n 0 5 p 0 0 pad: 1+ а, kdy 0 6 а э к б, б e а б 6с1 к 6с11 1+ а б + б а kdy 0 6 а щ к б. 1+ к 6с1 а б 1+ 6с1 к к + а б, kdy 0 6 а щ к б. 6с1 1 Chyba aproxiace pro tyto odhady je O Tabulka jedinou polo 0 6ku C key а б 6с1 к, kdy 0 6 а щ к б а б 1+ 6с1 к к + а б + 1 6с1 б а log л Д. Д Ha 0 8ov n s line rn p 0 0id v n 5 а б 6с1 к 6с1e а б 6с1 к +1, Z kladn idea: P 0 0i operaci INSERTx vlo 0 6 e x na 0 0 dek hx, kdy 0 6 je pr zdn 0 5, v opa 0 0n p 0 0 pad naleznee nejen 0 8 i takov, 0 6e 0 0 dek hx + i od je pr zdn 0 5, a ta vlo 0 6 e x. Tato etoda byla otivov na snahou o co nejv t 0 8 vyu 0 6it pa ti. Koent 0 0: Metoda vy 0 6aduje ini ln velikost pa ti. V tabulce se vytv 0 0ej shluky pou 0 6it 0 5ch 0 0 dk 0 1, a proto p 0 0i velk zapln n etoda vy 0 6aduje velk no 0 6stv 0 0asu. Metoda nepodporuje efektivn ipleentaci operace DELETE. P 0 0i vyhled v n je t 0 0eba testovat, zda nevy 0 8et 0 0ujee podruh prvn vy 0 8et 0 0ovan 0 5 0 0 dek a pro zji 0 8t n p 0 0epln n je vhodn t ulo 0 6en po 0 0et vypln n 0 5ch 0 0 dk 0 1 v tabulce. Pro standarn pa ti nen v 0 5hodn. P 0 0i pou 0 6iti cache-pa ti se v 0 5razn n jej ohodnocen, proto 0 6e inializuje po 0 0et p 0 0echod 0 1 ezi r 0 1zn 0 5i typy pa t. Proto se tato etoda doporu 0 0uje pro po 0 0 ta 0 0e s cache-pa t. MEMBERx: Spo 0 0 t e i := hx, h := i if i.key = x then V 0 5stup x й S, stop if i.key =pr zdn 0 5 then V 0 5stup: x / й S, stop i := i+1 while i.key ыpr zdn 0 5 a i.key ы x a i ы h do i := i+1 od enddo if i.key = x then V 0 5stup: x й S else V 0 5stup: x / й S INSERTx: Spo 0 0 t e i := hx, j := 0

1 36 while i.key ыpr zdn 0 5 a i.key ы x a j < do i := i+1 od, j := j +1 enddo if j = then V 0 5stup: p 0 0epln n, stop if i.key =pr zdn 0 5 then i.key := x P 0 0 klad: M euniversu U = {1,,...,1000},ha 0 8ovac funkcihx = x od 10ano 0 6inu S = {1,7,11,53,73,141,161}. Tato no 0 6ina je ulo 0 6ena v lev tabulce. Provedee operaci INSERT35. V 0 5sledek je ulo 0 6en v prav tabulce. 0 0 dek key P0 P1 1 P 11 P3 73 P4 141 P5 161 P6 53 P7 7 P8 P9 0 0 dek key P0 P1 1 P 11 P3 73 P4 141 P5 161 P6 53 P7 7 P8 35 P9 Tabulka vznikla posloupnost operac : INSERT1, INSERT11, INSERT73, INSERT141, INSERT161, INSERT53, INSERT7. Na z v r uvedee slo 0 6itost t to etody. O 0 0ek van 0 5 po 0 0et test 0 1: ne sp 0 8n 0 5 p 0 0 pad: ж 1 sp 0 8n 0 5 p 0 0 pad: ж 1 1+ 1+ 1 1 6с1 а 1 1 6с1 а., Dvojit ha 0 8ov n Z kladn nev 0 5hoda p 0 0edchoz etody je zp 0 1sob v 0 5b ru dal 0 8 ho 0 0 dku. Je veli deterinov n a d 0 1sledke je vznik shluku 0 0 dk 0 1, kter 0 5 vede k v 0 5razn u zpoalen etody. Idea jak odstranit tuto nev 0 5hodu: Pou 0 6ijee dv ha 0 8ovac funkce h 1 a h a p 0 0i operaci INSERTx naleznee nejen 0 8 i = 0,1,... takov, 0 6e 0 0 dek h 1 x+ih x od je pr zdn 0 5, a ta ulo 0 6 e prvek x. Tabulka jedinou polo 0 6ku C key. Po 0 6adavky na korektnost: Pro ka 0 6d x us b 0 5t h x a nesoud ln jinak prvek x ne 0 1 0 6e b 0 5t ulo 0 6en na libovoln 0 0 dku tabulky. P 0 0edpoklad pro v 0 5po 0 0et o 0 0ekavan ho po 0 0tu test 0 1: posloupnost {h 1 x+ih x} 6с11 je n hodn perutace no 0 6iny 0 0 dk 0 1 tabulky. Nev 0 5hoda: Uveden etoda nepodporuje operaci DELETE. P 0 0epln n se 0 0e 0 8 stejn 0 5 zp 0 1sobe jako v etod ha 0 8ov n s line rn p 0 0id v n. Pozn ka: Metoda ha 0 8ov n s line rn p 0 0id v n je speci ln p 0 0 pad dvojit ho ha 0 8ov n, kde h x = 1 pro ka 0 6d x й U.

1 37 Algority. MEMBERx: Spo 0 0 t e i := h 1 x, h := h x, j := 0 while i.key ыpr zdn 0 5 a i.key ы x a j < do i := i+h od, j := j +1 enddo if i.key = x then V 0 5stup: x й S else V 0 5stup: x / й S INSERTx: Spo 0 0 t e i := h 1 x, h := h x, j := 0 while i.key ыpr zdn 0 5 a i.key ы x a j < do i := i+h od, j := j +1 enddo if j = then V 0 5stup: p 0 0epln n, stop if i.key =pr zdn 0 5 then i.key := x P 0 0 klad: M je universu U = {1,,...,1000}. Ha 0 8ovac funkce jsou h 1 x = x od 10 a h x = 1+x od 4, kdy 0 6 x od 4 й {0,1}, h x = 3+x od 4, kdy 0 6 x od 4 й {,3}. Mno 0 6ina je S = {1,7,11,53,73,141,161}. Tato no 0 6ina je ulo 0 6ena v lev tabulce. Aplikuje INSERT35. Pak h 35 = 9, tedy posloupnost pro x = 35 je V 0 5sledek je ulo 0 6en v prav tabulce. 5,4,3,,1,0,9,8,7,6. 0 0 dek key P0 11 P1 1 P P3 73 P4 141 P5 7 P6 53 P7 161 P8 P9 0 0 dek key P0 11 P1 1 P 35 P3 73 P4 141 P5 7 P6 53 P7 161 P8 P9 Tabulka vznikla posloupnost operac : INSERT1, INSERT73, INSERT53, INSERT141, INSERT161, INSERT11, INSERT7. Anal 0 5za vyhled v n v dvojit ha 0 8ov n. Ne sp 0 8n 0 5 p 0 0 pad. Zna 0 0en : q i n, C kdy 0 6 tabulka 0 0 dk 0 1 a je v n obsazeno n 0 0 dk 0 1, tak je to pravd podobnost, 0 6e pro ka 0 6d j = 0,1,...,i 6с1 1 je 0 0 dek h 1 x + jh x obsazen. Pak q 0 n, = 1, q 1 n, = n, q n, = nn 6с11 6с11 a obecn q i n, = г i 6с11 j=0 n 6с1j г i 6с11 j=0 6с1j.

1 38 Cn, C o 0 0ek van 0 5 po 0 0et test 0 1 v ne sp 0 8n vyhled v n, kdy 0 6 tabulka 0 0 dk 0 1 a n jich je obsazeno. Podle definice plat : Cn, = n j +1q j n, 6с1q j+1 n, = j=0 n q j n,. D le plat C0, = 1 pro ka 0 6d a q j n, = n q j 6с11n 6с11, 6с11 pro v 0 8echna j,n > 0 a > 1. Odtud 6Ж9 6В n Cn, = q j n, = 1+ n n 6с11 6В1 q j n 6с11, 6с11 6В4 = 1+ n Cn 6с11, 6с11. j=0 j=0 Indukc uk 0 6ee, 0 6e Cn, = +1 +1 6с1n+1. Kdy 0 6 n = 0, pak C0, = 6с10+1 = 1 a tvrzen plat. P 0 0edpokl d e, 0 6e tvrzen plat pro n 6с1 1 щ 0 a pro ka 0 6d щ n 6с1 1 a dok 0 6ee tvrzen pro n a щ n. Plat Cn, =1+ n Cn 6с11, 6с11 = j=0 n 6с11+1 1+ 6с11 6с1n 6с11+1 = n 1+ 6с1n+1 = +1 6с1n+1. O 0 0ek van 0 5 po 0 0et dotaz 0 1 p 0 0i ne sp 0 8n vyhled v n v tabulce s 0 0 dky, z nich 0 6 n je obsazeno, je +1 6с1n+1. 0 3sp 0 8n 0 5 p 0 0 pad. Pou 0 6ijee etodu ze separuj c ch 0 0et zc 0 1. Po 0 0et dotaz 0 1 p 0 0i vyhled v n x pro x й S je stejn 0 5 jako byl po 0 0et dotaz 0 1 p 0 0i vkl d n x do tabulky. Tedy o 0 0ek van 0 5 po 0 0et dotaz 0 1 p 0 0i sp 0 8n vyhled v n v tabulce s 0 0 dky, z nich 0 6 n je obsazeno, je n 6с11 1 n n 6с11 Ci, = 1 +1 n 6с1i+1 = 6Ж9 +1 +1 6В1 n j=1 1 +1 а ln 6с1n+1 6с1n+1 1 j 6с1 j=1 6В 1 6В4 ж j ж 1 а ln 1 1 6с1 а N sleduj c tabulka ukazuje tyto hodnoty v z vislosti na velikosti а.. hodnota а 0.5 0.7 0.9 0.95 0.99 0.999 1 3.3 10 0 100 1000 1 6с1 а 1 а ln 1 1 6с1 а 1.38 1.70.55 3.15 4.65 6.9

1 39 Porovn n efektivity Po 0 0ad etod ha 0 8ov n podle o 0 0ek van ho po 0 0tu test 0 1: Ne sp 0 8n vyhled v n. Ha 0 8ov n s uspo 0 0 dan 0 5i 0 0et zci, Ha 0 8ovan s 0 0et zci=ha 0 8ov n s p 0 0e s 0 ov n, Ha 0 8ov n s dv a ukazateli, VICH=LICH, EICH, LISCH=EISCH, Dvojit ha 0 8ov n, Ha 0 8ov n s line rn p 0 0id v n. 0 3sp 0 8n vyhled v n. Ha 0 8ov n s uspo 0 0 dan 0 5i 0 0et zci=ha 0 8ov n s 0 0et zci=ha 0 8ov n s p 0 0e s 0 ov n, Ha 0 8ov n s dv a ukazateli, VICH, LICH, EICH, EISCH, LISCH, Dvojit ha 0 8ov n, Ha 0 8ov n s line rn p 0 0id v n. Pozn ka: Metoda VICH p 0 0i ne sp 0 8n vyhled v n pro а < 0.7 a p 0 0i sp 0 8n vyhled v n pro а < 0.9 vy 0 6aduje en 0 8 o 0 0ek van 0 5 po 0 0et test 0 1 ne 0 6 etoda s dv a ukazateli. P 0 0i ne sp 0 8n vyhled v n jsou etody VICH a LICH stejn a jsou o 8% lep 0 8 ne 0 6 EICH a o 15% ne 0 6 etody LISCH a EISCH. P 0 0i sp 0 8n vyhled v n je VICH nepatrn lep 0 8 ne 0 6 LICH a EICH o 3% lep 0 8 ne 0 6 EISCH a o 7% lep 0 8 ne 0 6 LISCH. O 0 0ek van 0 5 po 0 0et test 0 1 p 0 0i pln zapln n tabulce. Metoda s p 0 0e s 0 ov n : ne sp 0 8n vyhled v n 1.5, sp 0 8n vyhled v n 1.4. Metoda s dv a ukazateli: sp 0 8n i ne sp 0 8n vyhled v n 1.6. VICH: ne sp 0 8n vyhled v n 1.79, sp 0 8n vyhled v n 1.67. LICH: ne sp 0 8n vyhled v n 1.79, sp 0 8n vyhled v n 1.69. EICH: ne sp 0 8n vyhled v n 1.93, sp 0 8n vyhled v n 1.69. EISCH: ne sp 0 8n vyhled v n.1, sp 0 8n vyhled v n 1.7. LISCH: ne sp 0 8n vyhled v n.1, sp 0 8n vyhled v n 1.8. Metodu s line rn p 0 0id v n je dobr pou 0 6 t jen pro а < 0.7, etodu s dvojit 0 5 ha 0 8ov n pro а < 0.9, pak 0 0as pro ne sp 0 8n vyhled v n rychle nar 0 1st. Vliv б = Д p 0 0i sr 0 1staj c ha 0 8ov n. P 0 0i sp 0 8n vyhled v n je opti ln hodnota б = 0.85, p 0 0i ne sp 0 8n vyhled v n je opti ln hodnota б = 0.78. V praxi se doporu 0 0uje pou 0 6 t hodnotu б = 0.86 uveden v 0 5sledky byly pro tuto hodnotu б.

1 330 Koent 0 0: Metody se separuj c i 0 0et zci a sr 0 1staj c ha 0 8ov n pou 0 6 vaj v ce pa ti p 0 0i sr 0 1staj c ha 0 8ov n sou 0 0et adresovac a poocn 0 0 sti. Metoda s p 0 0e s 0 ov n a etoda dvojit ho ha 0 8ov n vy 0 6aduji v ce 0 0asu C na p 0 0e st n prvku a na v 0 5po 0 0et druh ha 0 8ovac funkce. Dal 0 8 ot zky Jak nal zt voln 0 5 0 0 dek. Za nejlep 0 8 etodu se pova 0 6uje t sezna z sobn k voln 0 5ch 0 0 dk 0 1 a z jeho vrcholu br t voln 0 5 0 0 dek a po sp 0 8n operaci DELETE ta zase 0 0 dek vlo 0 6it pozor p 0 0i operaci DELETE ve struktur ch kter nepodporuj DELETE. Jak 0 0e 0 8it p 0 0epln n. Standardn odel: D na z kladn velikost tabulky a pracuje se s tabulkai s i 0 0 dky pro vhodn i = 0,1,... Vhodn i znaen, 0 6e faktor zapln n а je v intervalu < 1 4,1 > s vyj kou i = 0, kde se uva 0 6uje pouze horn ez. P 0 0i p 0 0ekro 0 0en eze se zv t 0 8 nebo zen 0 8 i a v 0 8echna data se p 0 0eha 0 8uj do nov tabulky. V 0 5hoda: Po p 0 0eha 0 8ov n do nov tabulky, po 0 0et operac, kter vedou k nov u p 0 0eha 0 8ov v n, je alespo polovina velikosti ulo 0 6en no 0 6iny. Praktick pou 0 6it : Nedr 0 6et se striktn ez, pou 0 6 vat al poocn tabulky p 0 0i p 0 0epln n a posunout velk p 0 0eha 0 8ov n na dobu klidu aby syst nenechal u 0 6ivatele v nor ln dob 0 0ekat. Jak 0 0e 0 8it DELETE v etod ch, kter ho nepodporuj. Pou 0 6 t ideu tzv. fale 0 8n ho DELETE. Odstranit prvek, ale 0 0 dek neuvolnit i v kl 0 0i nechat n jakou hodnotu, kter bude znaenat, 0 6e 0 0 dek je pr zdn 0 5, polo 0 6ky podporuj c pr ci s tabulkai ne nit. 0 9 dek nebude v seznau voln 0 5ch 0 0 dk 0 1, ale operace INSERT, kdy 0 6 testuje tento 0 0 dek, tak ta 0 1 0 6e vlo 0 6it nov 0 5 prvek. Kdy 0 6 je alespo polovina pou 0 6it 0 5ch 0 0 dk 0 1 takto blokov na, je vhodn celou strukturu p 0 0eha 0 8ovat. Pravd podobnostn anal 0 5zu tohoto odelu nezn. Otev 0 0en probl y. Jak vyu 0 6 t ideje z ha 0 8ov n s uspo 0 0 dan 0 5i 0 0et zci pro ostatn etody 0 0e 0 8en koliz jenovit pro sr 0 1staj c ha 0 8ov n. Jakou etodu pou 0 6 t pro operaci DELETE ve sr 0 1staj c ha 0 8ov n probl je zachovat n hodnost ulo 0 6en no 0 6iny a t platnost odhadu na slo 0 6itost operac. Jak nal zt druhou ha 0 8ovac funkci pro etodu dvojit ho ha 0 8ov n, aby vznikl posloupnosti adres p 0 0i operaci INSERT se chovaly jako n hodn? Z v r. P 0 0ipoe e si p 0 0edpoklady pro p 0 0edchoz uveden v 0 5sledky o ha 0 8ov n : 1 Ha 0 8ovac funkce se rychle spo 0 0 t v 0 0ase O1; Ha 0 8ovac funkce rovno rn rozd luje univerzu to znaen, 0 6e pro dv r 0 1zn hodnoty i a j ha 0 8ovac funkce plat 6с11 э h 6с11 i 6с1 h 6с11 j э 1; 3 Vstupn data jsou rovno rn rozd len.

1 3Diskutuje splnitelnost t chto p 0 0edpoklad 0 1. P 0 0edpoklad 1 je jasn 0 5. P 0 0edpoklad C je v 0 5hodn, kdy 0 6 rozd len univerza ha 0 8ovac funkc kop ruje zn rozd len vstupn ch dat. Pou 0 6ilo se p 0 0i n vrhu p 0 0eklada 0 0e pro FORTRAN Lu 1971. V n sleduj c tabulce jsou uveden spo 0 0 tan a na 0 0en v 0 5sledky. Pou 0 6ila se etoda separovan 0 5ch 0 0et zc 0 1. Byly teoreticky spo 0 0 tan za na 0 8ich p 0 0edpoklad 0 1. Experient byl prov d n pooc ha 0 8ovac funkce, kter preferovala obvykl n zvy identifik tor 0 1. V 0 5sledky byly 0 0eny, kdy 0 6 se p 0 0eklada 0 0 FORTRANu pou 0 6il pro standardn v 0 5po 0 0et. Porovn n v 0 5sledku: 31 hodnota а 0.5 0.6 0.7 0.8 0.9 experient 1.19 1.5 1.8 1.34 1.38 teorie 1.5 1.30 1.35 1.40 1.45 Z v r: Pod nky 1 a 0 1 0 6ee splnit, kdy 0 6 zn e rozlo 0 6en vstupn ch dat, 0 1 0 6ee dos hnout je 0 8t lep 0 8 ch v 0 5sledk 0 1. Nev 0 5hoda: Rozlo 0 6en vstupn ch dat ne 0 1 0 6ee ovlivnit a obvykle ho ani nezn e. Je re ln, 0 6e rozd len vstupn ch dat bude nevhodn pro pou 0 6itou ha 0 8ovac funkci. D 0 1sledek C na po 0 0 tku 70. let se za 0 0alo ustupovat od ha 0 8ov n. Hledal se postup, kter 0 5 by se vyhnul uveden u probl u s bode 3. Nalezen u 0 0e 0 8en je v nov n n sleduj c text. Univerz ln ha 0 8ov n 0 9e 0 8en navrhli Carter a Wegan 1977, kdy 0 6 p 0 0i 0 8li s etodou univerz ln ho ha 0 8ov n, kter obch z po 0 6adavek 3. To vedlo k nov u rozs hl u pou 0 6 v n ha 0 8ov n. Z kladn idea: M sto jedn funkce e no 0 6inu H funkc z univerza do tabulky velikosti takov 0 5ch, 0 6e pro ka 0 6dou no 0 6inu S 6ш7 U, S э se v t 0 8ina funkc chov dob 0 0e v 0 1 0 0i S tj. S spl uje po 0 6adavek 3. Ha 0 8ovac funkci zvol e n hodn z H s rovno rn 0 5 rozd len a ha 0 8ujee pooc takto zvolen funkce. Modifikace ideje. Ov 0 0ov n vlastnost vy 0 6aduje znalost velikosti no 0 6iny H. Rychl vy 0 0 slitelnost hx vy 0 6aduje analytick zad n funkc v H, ale zji 0 8t n rovnosti dvou analyticky zadan 0 5ch funkc na univerzu U je probleatick. 0 9e 0 8en probl u je pou 0 6it indexov no 0 6iny. To znaen, 0 6e H = {h i i й I} a dv funkce jsou r 0 1zn, kdy 0 6 aj r 0 1zn indexy. Pak velikost syst u bude velikost indexov no 0 6iny. M sto zvolen ha 0 8ovac funkce budee volit n hodn index s rovno rn 0 5 rozlo 0 6en a kdy 0 6 zvol e index i, pak budee pracovat s ha 0 8ovac funkc h i. O 0 0ek van hodnota n hodn pro nn f z no 0 6iny I do re ln 0 5ch 0 0 sel bude pr 0 1 r p 0 0es I, tj. i йi fi I. For ln : Nech 0 U je univerzu. Soubor funkc H = {h i i й I} z univerza U do no 0 6iny {0,1,..., 6с11} se naz 0 5v c-univerz ln c je kladn re ln 0 0 slo, kdy 0 6 6я6x,y й U, x ы y plat {i й I h i x = h i y} э c I.

1 33 Jako ekvivalentn definici lze pou 0 6 t toto tvrzen : syst funkc H z univerza U do no 0 6iny {0,1,..., 6с11} je c-univerz ln, kdy 0 6 vyb r e funkci h й H s rovno rn 0 5 rozd len, pak pro ka 0 6d dv r 0 1zn x,y й U, plat Probhx = hy э c. Probl y: existence c-univerz ln ch syst 0 1, vlastnosti c-univerz ln ch syst 0 1 zda spl uj po 0 6adovan ideje. Existence univerz ln ch syst 0 1. Univerzu U = {0,1,...,N 6с11} pro prvo 0 0 slo N, H = {h a,b a,b й U аu}, kde h a,b x = ax+b od N od tj. indexov no 0 6ina je U аu a jej velikost je N. V 0 5hoda: funkce z no 0 6iny H u e rychle vy 0 0 slit. Zvolex,y й U takov, 0 6ex ы y. Chceenal zta,b й U аu takov, 0 6eh a,b x = h a,b y. Mus existovat i й {0,1,..., 6с11} a r,s й { 0,1,..., 6Х3 N 6Х4 6с11 } tak, 0 6e plat ax+b т i+r od N ay +b т i+s od N Kdy 0 6 x, y, i, r a s jsou konstanty a a a b jsou pro nn, je to syst line rn ch rovnic v t lese Z/ od N, kde Z jsou cel 0 0 sla. Matice soustavy x 1 y 1 je regul rn, proto 0 6e x ы y. Tedy existuje jedin 0 0e 0 8en t to soustavy pro fixovan x, y, i, r a s. Pro dan x a y, i nab 0 5v hodnot, r a s nab 0 5vaj 6Х3 N 6Х4 hodnot. Z v r: pro ka 0 6d x,y й U takov, 0 6e x ы y, existuje 6Х3 N 6Х4 dvojic a,b й U а U takov 0 5ch, 0 6e h a,b x = h a,b y. V ta. Mno 0 6ina H je c-univerz ln pro c = 6Х3 N 6Х4 N. Skute 0 0n, pro ka 0 6d x,y й U, x ы y, je po 0 0et a,b й U аu takov 0 5ch, 0 6e h a,b x = h a,b y, nejv 0 5 0 8e roven 6Х3 6Х4 6Х3 N N 6Х3 = 6Х4 N N 6Х4 = I. N Z v r: Dok zali jse existenci c-univerz ln ch syst 0 1 pro c bl zk 1. Sta 0 0 si uv doit, 0 6e ka 0 6d univerzu 0 1 0 6ee pova 0 6ovat za univerzu tvaru {0,1,...,N 6с11} pro n jak N a 0 6e ezi 0 0 sly N a N v 0 6dy existuje n jak prvo 0 0 slo. N

1 333 Vlastnosti univerz ln ho ha 0 8ov n. P 0 0edpoklad: H = {h i i й I} je c-univerz ln syst funkc Ozna 0 0en : Pro i й I a prvky x,y й U ozna 0 0e { 1 kdy 0 6 x ы y a hi x = h i y, д i x,y = 0 kdy 0 6 x = y nebo h i x ы h i y. Pro no 0 6inu S 6ш7 U, x й U a i й I definuje д i x,s = y йs д i x,y. Pro fixovanou no 0 6inu S 6ш7 U a pro fixovan x й U se 0 0tee д i x,s p 0 0es v 0 8echna i й I: д i x,s = i x,y = i йi i йi y йs д д i x,y = y йs i йi {i й I h i x = h i y} э y йs,y ыx y йs,y ыx { c I S 6с11c I = kdy 0 6 x й S, S c I kdy 0 6 x / й S. Proto 0 6e д i x,s d v odhad na velikost 0 0et zce h i x p 0 0i reprezentaci no 0 6iny S pooc funkce h i, dost v e, 0 6e o 0 0ek van d lka 0 0et zce pro fixovanou no 0 6inu S 6ш7 U a fixovan x й U p 0 0es i й I s rovno rn 0 5 rozd len je nejv 0 5 0 8e 1 I д i x,s э i йi { c S 6с11 kdy 0 6 x й S, c S kdy 0 6 x / й S. V ta. O 0 0ek van 0 5 0 0as operac MEMBER, INSERT a DELETE p 0 0i c-univerz ln ha 0 8ov n je O1+c а, kde а je faktor napln n tj. а = S. O 0 0ek van 0 5 0 0as pro pevnou posloupnost n operac MEMBER, INSERT a DELETE aplikovan 0 5ch na pr zdnou tabulku pro c-univerz ln ha 0 8ov n je O 1+ c а n, kde а = n. V 0 5zna v 0 5sledku: Vzorec se jen o ultiplikativn konstantu c li 0 8 od vzorce pro ha 0 8ov n se separovan 0 5i 0 0et zci. P 0 0ito c 0 1 0 6e b 0 5t jen o lo en 0 8 ne 0 6 1 a ve v 0 8ech zn 0 5ch p 0 0 kladech je c щ 1. Tak 0 6e, co jse dos hli? Rozd l je v p 0 0edpokladech. Zde je p 0 0edpoklad 3 nahrazen p 0 0edpoklade, 0 6e index i й I je vybr n s rovno rn 0 5 rozd len, a nen 0 6 dn 0 5 p 0 0edpoklad na vstupn data. V 0 5b r indexu i 0 1 0 6ee ovlivnit, ale v 0 5b r vstupn ch dat nikoliv. M 0 1 0 6ee zajistit rovno rn rozd len v 0 5b ru i z I nebo se k touto rozd len hodn p 0 0ibl 0 6it.

1 334 Markovova nerovnost. P 0 0edpoklady: Je d na no 0 6ina S 6ш7 U, prvek x й U. O 0 0ek van velikost д i x,s je 0 8, a t щ 1. Uk 0 6ee pro t > 1, 0 6e pravd podobnost, 0 6e д i x,s щ t 0 8 pro i й I, je en 0 8 ne 0 6 1 t p 0 0edpoklad e, 0 6e i je z I vybr no s rovno rn 0 5 rozd len. Ozna 0 0e I Д = {i й I д i x,s щ t 0 8}. Pak plat i йi 0 8 = д ix,s i йi д > Д i x,s I I Odtud I Д < I t. щ i йi Д t 0 8 I = I Д I t 0 8 Z v r: Pravd podobnost, 0 6e д i x,s щ t 0 8, je en 0 8 ne 0 6 1 t, a odtud plyne po 0 6adovan tvrzen. Pozn ka: Toto tvrzen plat obecn a naz 0 5v se Markovova nerovnost. Uveden 0 5 d 0 1kaz ilustruje jednoduch tvrzen pro kone 0 0n 0 5 p 0 0 pad. Probl y. Hlavn probl : Zaji 0 8t n rovno rn ho rozd len v 0 5b ru i z I. Proveden v 0 5b ru: Zak dovat indexy z no 0 6iny I do 0 0 sel 0,1,..., I 6с11. Zvolit n hodn 0 0 slo i z tohoto intervalu s rovno rn 0 5 rozd len a pak pou 0 6 t funkci s indexe, jeho 0 6 k d je i. Abycho vybrali i, naleznee nejen 0 8 j takov, 0 6e j 6с1 1 щ I 6с1 1. Pak 0 0 sla v intervalu { 0,1,..., j 6с11 } jednozna 0 0n koresponduj s posloupnosti 0 a 1 d lky j. Budee vyb rat n hodn posloupnost 0 a 1 d lky j. K v 0 5b ru posloupnosti pou 0 6ijee n hodn 0 5 gener tor rovno rn ho rozd len. Z vada: Skute 0 0n 0 5 n hodn 0 5 gener tor pro rovno rn rozd len je prakticky nedosa 0 6iteln 0 5 n kter fyzik ln procesy. K dispozici je pouze pseudogener tor. Jeho nev 0 5hoda: 0 9 je j v t 0 8, t je posloupnost pravideln j 0 8 tj. n n hodn. D 0 1sledky: Nal zt co nejen 0 8 c-univerz ln syst y. Nal zt doln odhady na jejich velikost. Doln odhady na velikost. P 0 0edpoklady: Nech 0 U je universu velikosti N a nech 0 H = {h i i й I} je c-univerz ln syst funkc ha 0 8uj c ch do tabulky velikosti. M 0 1 0 6ee p 0 0edpokl dat, 0 6e I = {0,1,..., I 6с11}. Indukc definuje no 0 6iny U 0,U 1,... tak, 0 6e: U 0 = U. Nech 0 U 1 je nejv t 0 8 podno 0 6ina U 0 vzhlede k po 0 0tu prvk 0 1 takov, 0 6e h 0 U 1 je jednoprvkov no 0 6ina. Nech 0 U je nejv t 0 8 podno 0 6ina U 1 vzhlede k po 0 0tu prvk 0 1 takov, 0 6e h 1 U je jednoprvkov no 0 6ina.