Hashovací tabulky v Lua

Slides:



Advertisements
Podobné prezentace
DOI Digital Object Identifier
Advertisements

Jméno autora: Mgr. Zdeněk Chalupský Datum vytvoření:
PrecisPlanner 3D Software pro plánování přesnosti měření v IG
Aplikace DynaMed na zařízeních iPhone, iPod Touch či iPad Tutoriál Last updated 9/28/ února 2013.
V ERZE 20 SYSTÉMU A LEPH ŠKOLENÍ KLIENTA. S TRUKTURA SYSTÉMU Typy bází: Bibliografická – obsahuje bibliografické záznamy  KNA01 ostrá báze Administrativní.
Základní struktura, metainformace
Programování 2 Cvičení 5.
Internet pro programátory. Jaké nám dává internet možnosti? Jaké nám dává internet možnosti? …………………………..……………… Tematicky zaměřené portály a servery Internetové.
DB1 – 9. cvičení Optimalizace dotazu Konkurenční přístup a deadlock Indexace Transakce.
Semestrální práce KIV/PT Martin Kales Hana Hůlová.
Dana Sigmundová E-books jako zdroj odborných informací ÚK FSS MU, Ústřední knihovna FSS MU.
Algoritmizace a programování Datové typy v Delphi - 05
Algoritmizace a programování Operátory a příkazy v Delphi - 07
Postupně tedy doplňujeme hodnoty do na začátku prázdného SFC (postupového diagramu), který je v automatu realizován krokovým řadičem.
Materiály k přednášce Úvod do programování Ondřej Čepek.
Bibliografická a rešeršní činnost
Soustavy kót a kótování opakujících se rozměrů.
PHP PHP – základy syntaxe (část 1) - 03 Mgr. Josef Nožička IKT PHP
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ř.
Citace, citování Plagiátorství
Microsoft Access Prezentace základních uživatelských nástrojů
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B8 Autor Ing. Jiří Kalousek Období vytvoření listopad.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
STŘEDNÍ EVROPA 8. třída Mgr. Jakub Karásek
Algoritmy a programovací techniky
PHP – Základy programování
PHP PHP – základy syntaxe (část 2) - 04 Mgr. Josef Nožička IKT PHP
Datové typy a práce s nimi
Algoritmy vyhledávání a řazení
Rok vydání Název školyStřední odborná škola Luhačovice Číslo projektuCZ.1.07/1.5.00/ AutorMgr. Klára Masařová Název šablonyIII/2.
Gymnázium, Žamberk, Nádražní 48 Projekt: CZ.1.07/1.5.00/ Inovace ve vzdělávání na naší škole Název: Filtrování a řazení dat Autor: Jaroslav Kvapil.
Ing. Tomáš Váňa, Ing. Jiří Zechmeister
Proměnné v PHP Každý programovací jazyk pracuje s nějakými hodnotami. To, do čeho se tyto hodnoty ukládají, se nazývá proměnné. Každý programovací jazyk.
Návrh a tvorba WWW Cvičení 4
Střední škola služeb a podnikání, Ostrava-Poruba příspěvková organizace Výukový materiál v rámci projektu OPVK 1.5 Peníze středním školám Číslo projektu:
Title of the document The content of the document Úroveň 1 Úroveň 2 Úroveň 3 Titulek Výrobky Služby O nás Autorem materiálu a všech jeho částí, není-li.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01C19 Autor Ing. Jiří Kalousek Období vytvoření březen.
Proměnná typu "pole" Mezi proměnné typu "pole" patří všechny superglobální proměnné. Mezi proměnné typu "pole" patří všechny superglobální proměnné. To.
VISUAL BASIC PRALG.
Algoritmizace a programování Binární soubory - 14 Mgr. Josef Nožička IKT Algoritmizace a programování
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Jednotná informační brána (JIB) Umožňuje souběžné vyhledání v několika českých i zahraničních informačních zdrojích. Vyhledávací nástroje:
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
ANOTACEPrezentace obsahuje informace o práci s vyhledávačem Google. Druh učebního materiáluDUM Očekávané výstupy Žáci umí použít vyhledávač Google k vyhledávání.
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B7 Autor Ing. Jiří Kalousek Období vytvoření listopad.
Metodický list Pořadové číslo: VY_32_INOVACE_I.C.15 Název pro školu:
Obchodní akademie, Ostrava-Poruba, příspěvková organizace Vzdělávací materiál/DUM VY_32_INOVACE_01B16 Autor Ing. Jiří Kalousek Období vytvoření březen.
Metodologie OOHDM, jazyk Lua a tvorba webových aplikací
Úvod do PHP IZI 228.
Jednotná informační brána (JIB) Umožňuje souběžné vyhledání v několika českých i zahraničních informačních zdrojích. Vyhledávací nástroje:
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
DBXplorer Systém pro vyhledávání nad relačními databází podle klíčových slov. zpracovala Margarita Vishnyakova.
Datové typy a operátory. Co jsou datové typy  Charakterizují proměnnou nebo konstantu – jaká data obsahuje  Data jsou v počítači ukládána jako skupiny.
Ukazatele, řetězce Přednáška č. 3. Ukazatele  Ukazatel (pointer) – typ o velikosti 4 bajty (v 32bit. systémech) pro uložení adresy objektu na který ukazuje.
Internet – služby Název školyGymnázium Zlín - Lesní čtvrť Číslo projektuCZ.1.07/1.5.00/ Název projektuRozvoj žákovských kompetencí.
doc. RNDr. Zdeněk Botek, CSc.
MS ACCESS Databáze pro každého. Základní pojmy  Data  určitá fakta, vztahující se k objektům z reálného světa, uložená v paměti počítače  Informace.
doc. RNDr. Zdeněk Botek, CSc.
Web of Knowledge Web of Science. Web of Knowledge
Informatika (1) Počítač - základní pojmy HW a SW4 OS MS-DOS, Windows 95, 982 Org. souborů na disku, operační paměť2 Aplikace Malování, Word8 Základy programování.
Verze 22 systému Aleph školení klienta 1. Struktura systému Typy bází: Bibliografická – obsahuje bibliografické záznamy – KNA01 ostrá báze Administrativní.
PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:
MIKROPROCESOROVÁ TECHNIKA
Fulltextové vyhledávání
Ruby on Rails framework vývoj aplikací pro WWW
Internetové publikování Dynamické HTML
Vytvoření IS pro správu místností v prostředí WWW
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Transkript prezentace:

Hashovací tabulky v Lua Petr Vévoda

Hashovací tabulka vyhledávací datová struktura, vyhledávání pomocí klíčů, spočtených z hashovací funkce, funkce může vracet pro různá data stejný klíč – vznikají kolize.

Programovací jazyk Lua skriptovací jazyk s dynamicky typovanými proměnnými, automatickou správou paměti, … syntaxe inspirovaná Pascalem, napsaná v jazyku C, zdrojový text => bajtkód => interpret.

Datové typy Lua má 8 datových typů: nil, boolean, number, string, userdata, function, thread, table. Všechny pokročilejší datové struktury jako pole, seznamy, záznamy jsou reprezentovány pomocí typu table.

Datový typ tabulka Ve formě dynamického asociativního pole (klíč => hodnota). Klíč může být jakéhokoliv datového typu (další tabulka, funkce, řetězce), hodnoty tabulky můžou být odlišných typů. Při přístupu na neexistující index vrací tabulka hodnotu nil. Mazání probíhá přiřazením hodnoty nil (proběhne Garbage Collect)

local hash_table_mt = { hash = function(surname) local number = 0 for i in surname:gmatch(".") do number = number + i:byte() * 37 end return number % 19 end, insert = function(self, record) table.insert(self[self.hash(record.surname)],record) search = function(self, surname) index = self.hash(surname) for i in ipairs(self) do if self[index][i].surname == surname then return self[index][i] end return nil delete = function(self, surname) if self[index][i].surname == surname then self[index][i] = nil end hash_table_mt.__index = hash_table_mt HASHTABLE = { new = function(size) local obj = {size = size} for i=1,size do obj[i] = {} setmetatable(obj, hash_table_mt) return obj } --main program record = {name = "petr", surname = "svetr"} ucet = HASHTABLE.new(20) ucet:insert(record) found = ucet:search("svetr") print(found.name, found.surname)

Zdroje Lua 5.2 Reference Manual.  [online]. 2011. URL: http://www.lua.org/manual/5.2/. HUDEC, B. Programovací techniky. 4. vyd. Praha: Vydavatelství ČVUT, 2001. 234 s. ISBN 80-01-02374-5. Ierusalimschy, R. Programming in Lua. 3. vyd. Vydavatelství Lua.org, 2013. 367 s. ISBN 85-90-37985-X