Vyhledávání v tabulkách

Podobné dokumenty
IAJCE Přednáška č. 12

Princip paralelního řazení vkládáním (menší propadává doprava)

Tabulka. Datová struktura, která umožňuje vkládat a později vybírat informace podle identifikačního klíče. Mohou být:

Pravděpodobnost a aplikovaná statistika

12. N á h o d n ý v ý b ě r

MATICOVÉ HRY MATICOVÝCH HER

odhady parametrů. Jednostranné a oboustranné odhady. Intervalový odhad střední hodnoty, rozptylu, relativní četnosti.

Statistika pro metrologii

1. ZÁKLADY VEKTOROVÉ ALGEBRY 1.1. VEKTOROVÝ PROSTOR A JEHO BÁZE

Deskriptivní statistika 1

P2: Statistické zpracování dat

2. Náhodná veličina. je konečná nebo spočetná množina;

3. Lineární diferenciální rovnice úvod do teorie

8.2.1 Aritmetická posloupnost

3. Sekvenční obvody. b) Minimalizujte budící funkce pomocí Karnaughovy mapy

3. ELEMENTÁRNÍ FUNKCE A POSLOUPNOSTI. 3.1 Základní elementární funkce. Nejprve uvedeme základní elementární funkce: KONSTANTNÍ FUNKCE

Petr Šedivý Šedivá matematika

6 Intervalové odhady. spočteme aritmetický průměr, pak tyto průměry se budou chovat jako by pocházely z normálního. nekonečna.

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Algoritmus

8.2.1 Aritmetická posloupnost I

1 POPISNÁ STATISTIKA V PROGRAMU MS EXCEL

Parametr populace (populační charakteristika) je číselná charakteristika sledované vlastnosti

Matematická analýza I

DIFERENCIÁLNÍ POČET FUNKCE JEDNÉ PROMĚNNÉ. 1) Pojem funkce, graf funkce

Základy statistiky. Zpracování pokusných dat Praktické příklady. Kristina Somerlíková

Pro statistické šetření si zvolte si statistický soubor např. všichni žáci třídy (několika tříd, školy apod.).

n=0 a n, n=0 a n = ±. n=0 n=0 a n diverguje k ±, a píšeme n=0 n=0 b n = t. Pak je konvergentní i řada n=0 (a n + b n ) = s + t. n=0 k a n a platí n=0

VLASTNOSTI ÚLOH CELOČÍSELNÉHO PROGRAMOVÁNÍ

je konvergentní, právě když existuje číslo a R tak, že pro všechna přirozená <. Číslu a říkáme limita posloupnosti ( ) n n 1 n n n

STATISTIKA. Statistika se těší pochybnému vyznamenání tím, že je nejvíce nepochopeným vědním oborem. H. Levinson

1. Číselné obory, dělitelnost, výrazy

Odhady parametrů polohy a rozptýlení pro často se vyskytující rozdělení dat v laboratoři se vyčíslují podle následujících vztahů:

je konvergentní, právě když existuje číslo a R tak, že pro všechna přirozená <. Číslu a říkáme limita posloupnosti ( ) n n 1 n n n

S polynomy jste se seznámili již v Matematice 1. Připomeňme definici polynomické

8.1.3 Rekurentní zadání posloupnosti I

Spojitost a limita funkcí jedné reálné proměnné

i 1 n 1 výběrový rozptyl, pro libovolné, ale pevně dané x Roznačme n 1 Téma 6.: Základní pojmy matematické statistiky

Přednáška 7, 14. listopadu 2014

6. Posloupnosti a jejich limity, řady

Geometrická optika. Zákon odrazu a lomu světla

23. Mechanické vlnění

Iterační výpočty projekt č. 2

6. P o p i s n á s t a t i s t i k a

České vysoké učení technické v Praze. Fakulta dopravní. Semestrální práce. Statistika

Budeme pokračovat v nahrazování funkce f(x) v okolí bodu a polynomy, tj. hledat vhodné konstanty c n tak, aby bylo pro malá x a. = f (a), f(x) f(a)

Komplexní čísla. Definice komplexních čísel

Cvičení 6.: Výpočet střední hodnoty a rozptylu, bodové a intervalové odhady střední hodnoty a rozptylu

2 EXPLORATORNÍ ANALÝZA

základním prvkem teorie křivek v počítačové grafice křivky polynomiální n

Cvičení 6.: Bodové a intervalové odhady střední hodnoty, rozptylu a koeficientu korelace, test hypotézy o střední hodnotě při známém rozptylu

8. Analýza rozptylu.

Mezní stavy konstrukcí a jejich porušov. Hru IV. Milan RůžR. zbynek.hruby.

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Generování dvojrozměrných rozdělení pomocí copulí

1.7.4 Těžiště, rovnovážná poloha

5. Lineární diferenciální rovnice n-tého řádu

Matematika 1. Ivana Pultarová Katedra matematiky, Fakulta stavební ČVUT v Praze. středa 10-11:40 posluchárna D Posloupnosti

1.1. Definice Reálným vektorovým prostorem nazýváme množinu V, pro jejíž prvky jsou definovány operace sčítání + :V V V a násobení skalárem : R V V

VYSOCE PŘESNÉ METODY OBRÁBĚNÍ

Popisná statistika. Zdeněk Janák 9. prosince 2007

PRAVDĚPODOBNOST A STATISTIKA

jako konstanta nula. Obsahem centrálních limitních vět je tvrzení, že distribuční funkce i=1 X i konvergují za určitých

Zobrazení čísel v počítači

13 Popisná statistika

1 Uzavřená Gaussova rovina a její topologie

Při sledování a studiu vlastností náhodných výsledků poznáme charakter. podmínek různé výsledky. Ty odpovídají hodnotám jednotlivých realizací

1 Základní pojmy a vlastnosti

Matematika 1. Katedra matematiky, Fakulta stavební ČVUT v Praze. středa 10-11:40 posluchárna D / 13. Posloupnosti

3. Charakteristiky a parametry náhodných veličin

n-rozměrné normální rozdělení pravděpodobnosti

Seznámíte se s pojmem Riemannova integrálu funkce jedné proměnné a geometrickým významem tohoto integrálu.

Úloha III.S... limitní

Analýza a zpracování signálů. 4. Diskrétní systémy,výpočet impulsní odezvy, konvoluce, korelace

11. přednáška 16. prosince Úvod do komplexní analýzy.

ZÁKLADNÍ STATISTICKÉ VÝPOČTY (S VYUŽITÍM EXCELU)

jsou reálná a m, n jsou čísla přirozená.

U klasifikace podle minimální vzdálenosti je nutno zvolit:

PRAVDĚPODOBNOST A STATISTIKA

Lineární a adaptivní zpracování dat. 8. Modely časových řad I.

OKRUŽNÍ A ROZVOZNÍ ÚLOHY: OBCHODNÍ CESTUJÍCÍ. FORMULACE PŘI RESPEKTOVÁNÍ ČASOVÝCH OKEN

Náhodu bychom mohli definovat jako součet velkého počtu drobných nepoznaných vlivů.

Definice obecné mocniny

Atributovaný překlad

1.3. POLYNOMY. V této kapitole se dozvíte:

Co je to statistika? Statistické hodnocení výsledků zkoušek. Úvod statistické myšlení. Úvod statistické myšlení. Popisná statistika

5. Posloupnosti a řady

5 Křivkové a plošné integrály

EKONOMETRIE 9. přednáška Zobecněný lineární regresní model

Cvičení 1.1. Dokažte Bernoulliovu nerovnost (1 + x) n 1 + nx, n N, x 2. Platí tato nerovnost obecně pro všechna x R a n N?

1. K o m b i n a t o r i k a

Mocniny. Mocniny, odmocniny, logaritmy, exponenciála. Obecná mocnina. Mocniny. Odmocniny

Sekvenční logické obvody(lso)

Intervalové odhady parametrů

UPLATNĚNÍ ZKOUŠEK PŘI PROHLÍDKÁCH MOSTŮ

6. FUNKCE A POSLOUPNOSTI

MATEMATIKA PŘÍKLADY K PŘÍJÍMACÍM ZKOUŠKÁM BAKALÁŘSKÉ STUDIUM MGR. RADMILA STOKLASOVÁ, PH.D.

Funkce. RNDr. Yvetta Bartáková. Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou

Modelování jednostupňové extrakce. Grygar Vojtěch

NMAF061, ZS Zápočtová písemná práce skupina A 16. listopad dx

Náhodný výběr 1. Náhodný výběr

Transkript:

Vyhledáváí v tabulkách Tabulkou azveme možiu položek idetifikovatelých hodotou přístupového (idetifikačího) klíče (key, ID idetificator). Ve vodorovém směru se jedá o heterogeí pole, tz. že každá položka je složea z ěkolika údajů, které mohou být růzých (datových) typů. Ve svislém směru se jedá o homogeí pole pole položek idetifikovatelých pomocí klíče. položka položka 2 položka klíč (ID) údaj údaj 2 údaj m Přístup do tabulky provádíme pomocí klíče a adále budeme dodržovat ásledující kovece ve začeí: k idetifikačí klíč, tj. klíč, kterým položku idetifikujeme A k adresí klíč, tj. adresa položky, kterou je ve většiě případů idex (pořadí) položky. Implemetace tabulky type T_klic = iteger; {apříklad} Polozka = record Klic : T_klic; Udaj : strig[délka]; Udaj2 : real ; ed; Tabulka = array [..] of Polozka Klíč může být jakéhokoliv datového typu (T_klic), obvykle se však používá celé číslo (iteger) ebo řetězec zaků (strig). Hledáí v tabulce Parametry hledáí v tabulce: S délka hledáí položky, tj. počet položek, které je uto zkoumat T průměrá délka hledáí defiovaá vztahem kde p je počet přístupů do tabulky T = p p S i i= - -

A průměrá délka prohledáváí za předpokladu rovoměrého přístupu A = S i i= kde je počet obsazeých položek tabulky P tzv. plěí tabulky (podíl obsazeých položek) defiovaé vtahem: P = a kde je počet obsazeých míst a a počet všech alokovaých míst tabulky Rozděleí tabulek Podle počtu položek můžeme tabulky rozdělit a: Pevě defiovaé tabulky (LUT Look Up Table) počet položek je kostatí Tabulky s proměým počtem položek počet položek je proměý Podle způsobu hledáí rozdělujeme tabulky a: Tabulky s uspořádaými položkami primárí klíč - klíč, podle kterého je tabulka uspořádáa. sekudárí klíč - všechy ostatí klíče Tabulky s euspořádaými položkami (i tabulky s rozptýleými položkami) Tabulky lze podle způsobu orgaizace rozdělit a: Tabulky s přímým přístupem k A k je prosté zobrazeí, každá položka v tabulce má své místo jedozačě určeé hodotou A k přímo odvozeou z k Příklad: Tabulka odkazů a oddíly slovíku (A, B, C, ) Obyčejé vyhledávací tabulky hledáme prostředictvím klíče, pokud ajdeme shodu, ašli jsme daou položku Tabulky s rozptýleými položkami (hash tables) k A k se azývá rozptylovací fukce, a kterou jsou kladey speciálí požadavky Tabulky s přímým přístupem Protože je k A k prosté zobrazeí, je S = T = A =. Většiou k = A k, proto eí třeba klíč uchovávat a uchováváme je data (údaje) tomu se říká degeerovaá tabulka Nevýhoda: velikost je dáa rozsahem klíče, v praxi je tedy často příliš velká. Navíc, pokud evyužijeme všechy klíče, jsou v tabulce evyužité díry, což je plýtváí pamětí - 2 -

Vyhledávací tabulky Vyhledáváí položky se provádí porováváím podle klíče. Pořadí položek může být defiovaé áhodé Strategie vyhledáváí Sekvečí Bereme postupě prvky v takovém pořadí, v jakém jsou v tabulce uložey, porováváme klíče s hledaou hodotou, a to tak dlouho, dokud eajdeme shodu. Platí: A = ( + ) 2 položky mohou být v tabulce uložey v libovolém pořadí Implemetace sekvečího vyhledáváí fuctio Sekveci(T:Tabulka;Hled_klic:T_klic):iteger; var i:iteger; begi i:=; while (i<=) ad (T[i].Klic<>Hled_klic) do i:=i+; if i<= the Sekveci:=i else Sekveci:=0 {Klíč ealeze} ed; Půleím (biárí, logaritmické) Lze použít, pokud je tabulka seřazeá podle klíče. Porováím klíče prvku v poloviě tabulky s hledaým rozhodeme, v které poloviě tabulky se hledaý prvek achází. V této poloviě pak opět zkusíme prvek uprostřed, atd. A log() Implemetace biárího vyhledáváí fuctio Biari(T:Tabulka;Hled_klic:T_klic):iteger; var i,k:iteger; begi k:=;i:=; while (K>0) ad (i<=) ad (T[i].klic<>Hled_klic) do begi k:=k div 2; if Hled_klic<T[i].klic the i:=i-k else i:=i+i ed; if (K>0)ad(I<=K) the Biari:=i else Biari:=0 ed; - 3 -

Pomocí Fiboacciho poslouposti Myšleka je stejá jako u biárího vyhledáváí, je zkoumaé prvky evolíme uprostřed, ale iterval dělíme v poměru Fiboacciho čísel Operačí složitost je také řádu log(), ale pro prvky a začátku tabulky je vyhledáváí rychlejší Pro efektiví hledáí se sažíme, aby měla tabulka F - položek, kde F je určité Fiboacciho číslo Fiboacciho čísla tvoří posloupost defiovaou ásledujícím rekuretím vztahem: F 0 = 0 F = F = F + F 2 N, 2 tedy posloupost tvoří čísla 0,,, 2, 3, 5, 8, 3, 2, 34, 55, Hledáí podle sekudárího klíče převádíme a hledáí podle primárího klíče implemetace ivertovaým souborem (idexový soubor) - jedá se ve skutečosti o tabulku seřazeou podle hledacího klíče, jejíž data jsou primárí klíč (ebo přímo idex v původí tabulce). V praxi je tato tabulka často degeerovaá a vyhledávací klíč se eudává, stačí, že je podle ěj ivertovaý soubor seřaze. primárí klíč data (sekudárí klíč) ivertovaý soubor Bláha Ja 945 935 Fiala Ja Bláha Josef 937 935 Fiala Marti Fiala Ja 935 937 Bláha Josef Fiala Marti 935 945 Bláha Ja Fiala Petr 956 948 Zubák Jiří Zubák Jiří 948 956 Fiala Petr implemetace ivertovaým sezamem - ivertovaý soubor realizovaý jako spojový sezam 935 Fiala Ja 935 Fiala Marti 937 Bláha Josef ebo 935 Fiala Ja Fiala Marti 937 Bláha Josef 945 Bláha Ja - 4 -

Víceásobý přístup Vyhledáváí v tabulce podle více klíčů (vícerozměré vyhledáváí) realizujeme víceásobým přístupem, apříklad hledáme postupě ejdříve podle příjmeí, pak podle jméa, atd. Kombiovaé Kombiace více postupů v jedom vyhledáváí. Výhoda: efektiví využití paměti až 00% plěí Nevýhoda: časově áročé vyhledáváí až lieárí operačí složitost Tabulky s rozptýleými položkami Používáme, pokud N (rozsah klíče) >> p (rozsah tabulky) Příklad: tabulka pro max. 000 zaměstaců idetikovatelých podle max. 0 velkých písme příjmeí N = 26 0 >> p = 000 Pro určeí pozice v tabulce, a kterou máme uložit položku s klíčem k, používáme rozptylovací fukci (hash-fukci), která klíči k jedozačě přiřazuje klíč A k : A k = h(k) Může se stát, že pro růzé položky k k 2 platí, že h(k ) = h(k 2 ) - vzikají tzv. syoymické položky a říkáme, že astává kolize Požadavky a rozptylovací fukci: Pro každé x je jedozačě defiovaá (a v přijatelém čase vyčíslitelá) Vytváří miimálí počet kolizí (miimum syoym) Pravděpodobostí rozděleí Ak = h(k) a itervalu 0, p- je rovoměré, je tedy výhodé použít pseudoáhodé fukce - radomizačí fukce Realizace h(x) - hash-fukci i = h(x) můžeme úspěšě realizovat apříklad ásledujícími způsoby: i je částí x i je částí výsledku operace ad x i je zbytkem po děleí rozsahem tabulky p i je zbytkem po děleí N, kde N je ejbližší meší prvočíslo (ež rozsah tabulky p) i je dá váhovým součtem částí x: i = i= kde a i jsou váhy jedotlivých částí x i klíče x r a i x i - 5 -

Příklad: h = ((2k + 00p + ) mod N) mod p kde p je rozsah tabulky a k je klíč Fuguje výborě pro tabulky s plěím meším ež 70% Operačí složitost vyhledáí: jedotková (f(n) ) až logaritmická (f(n) log N) - 6 -