Podcast
Questions and Answers
Hvað er meginhlutverk hakkatöflu?
Hvað er meginhlutverk hakkatöflu?
- Að skipuleggja gögn á þann hátt að hægt sé að nálgast þau hratt út frá lykli. (correct)
- Að þjappa gögn saman til að spara pláss.
- Að geyma gögn í röð og reglu.
- Að flokka gögn eftir stærð.
Hvaða fullyrðing lýsir best hlutverki hakkafalls í tengslum við hakkatöflu?
Hvaða fullyrðing lýsir best hlutverki hakkafalls í tengslum við hakkatöflu?
- Hakkafallið flokkar gögn í hakkatöflunni eftir stærð.
- Hakkafallið ákvarðar hversu mikið minni hakkatöflan notar.
- Hakkafallið umbreytir lyklinum í staðsetningu (index) í töflunni. (correct)
- Hakkafallið stýrir aðgangi að hakkatöflunni og tryggir öryggi gagna.
Hvað gerist þegar tvær mismunandi lyklar í hakkatöflu leiða til sömu staðsetningar (index) eftir að hakkafallið hefur verið keyrt?
Hvað gerist þegar tvær mismunandi lyklar í hakkatöflu leiða til sömu staðsetningar (index) eftir að hakkafallið hefur verið keyrt?
- Villa kemur upp og forritið hættir að virka.
- Seinni lykillinn skrifar yfir þann fyrri og gögn tapast.
- Árekstur á sér stað og meðhöndla þarf hann, til dæmis með tengdum listum eða öðrum aðferðum. (correct)
- Hakkatöflan stækkar sjálfkrafa til að rúma báða lyklana á mismunandi staðsetningum.
Hver er kosturinn við hakkatöflur umfram venjuleg fylki þegar kemur að aðgangstíma?
Hver er kosturinn við hakkatöflur umfram venjuleg fylki þegar kemur að aðgangstíma?
Hvaða áhrif hefur góð dreifing hakkafalls á frammistöðu hakkatöflu?
Hvaða áhrif hefur góð dreifing hakkafalls á frammistöðu hakkatöflu?
Hvað er átt við þegar talað er um að hakkafall sé "slembið"?
Hvað er átt við þegar talað er um að hakkafall sé "slembið"?
Í hvaða tilfellum er hakkatöflu með tengdum listum hentug til notkunar?
Í hvaða tilfellum er hakkatöflu með tengdum listum hentug til notkunar?
Hvað er Afmælisdagsþversögnin
í samhengi við hakkatöflur?
Hvað er Afmælisdagsþversögnin
í samhengi við hakkatöflur?
Hvernig getur stærð hakkatöflu haft áhrif á frammistöðu hennar?
Hvernig getur stærð hakkatöflu haft áhrif á frammistöðu hennar?
Hver af eftirfarandi aðgerðum er ekki algeng grunnaðgerð á hakkatöflum?
Hver af eftirfarandi aðgerðum er ekki algeng grunnaðgerð á hakkatöflum?
Hvað er átt við með fastayrðingu gagna
í samhengi við hakkatöflur með tengdum listum?
Hvað er átt við með fastayrðingu gagna
í samhengi við hakkatöflur með tengdum listum?
Hver af eftirfarandi kostum er mikilvægastur þegar velja á hakkafall fyrir hakkatöflu?
Hver af eftirfarandi kostum er mikilvægastur þegar velja á hakkafall fyrir hakkatöflu?
Hver er helsti kosturinn við að nota hakkaföll fyrir heiltölur sem byggjast á reikningi modulo prímtölu?
Hver er helsti kosturinn við að nota hakkaföll fyrir heiltölur sem byggjast á reikningi modulo prímtölu?
Hvaða vandamál geta komið upp ef hakkafall varpar öllum lyklum í sama sætið í hakkatöflu?
Hvaða vandamál geta komið upp ef hakkafall varpar öllum lyklum í sama sætið í hakkatöflu?
Hvernig er deilingu með $2^{w-l}$ framkvæmd í tölvu?
Hvernig er deilingu með $2^{w-l}$ framkvæmd í tölvu?
Hvað er átt við með því að hakkafall sé hraðvirkt
?
Hvað er átt við með því að hakkafall sé hraðvirkt
?
Hvernig getur lítil breyting á inntakinu haft áhrif á úttak hakkafalls sem hefur eiginleikann rugli bitunum
?
Hvernig getur lítil breyting á inntakinu haft áhrif á úttak hakkafalls sem hefur eiginleikann rugli bitunum
?
Hver er helsti kosturinn við að nota Karp-Rabin
hakkafallið fyrir strengi og fylki af tölum?
Hver er helsti kosturinn við að nota Karp-Rabin
hakkafallið fyrir strengi og fylki af tölum?
Hvaða áhrif hefur það á leitartímann í hakkatöflu með tengdum listum ef hlutfallið milli fjölda staka (n) og stærðar töflunnar (m) er stórt?
Hvaða áhrif hefur það á leitartímann í hakkatöflu með tengdum listum ef hlutfallið milli fjölda staka (n) og stærðar töflunnar (m) er stórt?
Hver er munurinn á hakkatöflu og uppflettitöflu?
Hver er munurinn á hakkatöflu og uppflettitöflu?
í hakkatöflu með tengdum listum, hvað er O(1 + α) tíminn sem leitin tekur að meðaltali táknar?
í hakkatöflu með tengdum listum, hvað er O(1 + α) tíminn sem leitin tekur að meðaltali táknar?
Af hverju viljum við að hakkaföll séu slembin?
Af hverju viljum við að hakkaföll séu slembin?
Í samhengi hakkatöflu, hvað er 'árekstur'?
Í samhengi hakkatöflu, hvað er 'árekstur'?
Hvaða fullyrðing er sönn um hakkatöflur?
Hvaða fullyrðing er sönn um hakkatöflur?
Hvaða fullyrðing er rétt um Karp-Rabin reikniritið?
Hvaða fullyrðing er rétt um Karp-Rabin reikniritið?
Hvað táknar breytan a
í hakkafallinu $h_a(x) = (a imes x) \mod p$?
Hvað táknar breytan a
í hakkafallinu $h_a(x) = (a imes x) \mod p$?
Hvað gerist ef reynt er að setja lykil sem þegar er til staðar í hakkatöflu með aðferðinni insert(k, v)
?
Hvað gerist ef reynt er að setja lykil sem þegar er til staðar í hakkatöflu með aðferðinni insert(k, v)
?
Hvað er gert við árekstra í hakkatöflu með tengdum listum?
Hvað er gert við árekstra í hakkatöflu með tengdum listum?
Hvað er kosturinn við að nota fastayrðingar gagna í reikniritum?
Hvað er kosturinn við að nota fastayrðingar gagna í reikniritum?
Hvaða af eftirfarandi er dæmi um hakkafall sem notað er fyrir heiltölur?
Hvaða af eftirfarandi er dæmi um hakkafall sem notað er fyrir heiltölur?
Hvað af eftirfarandi er algeng leið til að leysa árekstra í hakkatöflum?
Hvað af eftirfarandi er algeng leið til að leysa árekstra í hakkatöflum?
Í hvaða gagnagrind er hakkatöflu oftast líkt?
Í hvaða gagnagrind er hakkatöflu oftast líkt?
Hvað af eftirfarandi er mikilvægt að hafa í huga þegar hakkafall er valið?
Hvað af eftirfarandi er mikilvægt að hafa í huga þegar hakkafall er valið?
Í hakkatöflu, hvað er átt við með hugtakinu "álag" (e. load factor)?
Í hakkatöflu, hvað er átt við með hugtakinu "álag" (e. load factor)?
Flashcards
Uppflettitöflur
Uppflettitöflur
Grunnvallar gagnagrind, innbyggð í mörg forritunarmál undir mismunandi heitum.
insert(k, v)
insert(k, v)
Býr til nýtt (k,v) par eða uppfærir gildi ef það er til fyrir lykil k.
remove(k)
remove(k)
Fjarlægir parið með lykilinn k úr töflunni ef parið er til.
find(k)
find(k)
Signup and view all the flashcards
Hakkafall
Hakkafall
Signup and view all the flashcards
Slembin Hakkaföll
Slembin Hakkaföll
Signup and view all the flashcards
h(k) = k mod m
h(k) = k mod m
Signup and view all the flashcards
h(x) = a * x mod p
h(x) = a * x mod p
Signup and view all the flashcards
hₐ(x) = a * x = ∑ aᵢ * xᵢ mod m
hₐ(x) = a * x = ∑ aᵢ * xᵢ mod m
Signup and view all the flashcards
Hakkatöflur með tengdum lista
Hakkatöflur með tengdum lista
Signup and view all the flashcards
O(1 + α)
O(1 + α)
Signup and view all the flashcards
Study Notes
- The notes cover hash table analysis, hash tables, and hash functions
- The material was presented by Páll Melsted in 2025
Hash Tables and Hash Functions
- Hash tables are fundamental data structures embedded in many programming languages under names like associative array (awk, perl, php), map (c++, java, go, javascript, rust), dictionary (python, c#), symbol table, and direct address table
- Hash tables store pairs (k, v) with a key k ∈ K and a value v ∈ V, where no keys are repeated, third item, namely strings
Basic Operations
insert(k,v)
creates a new (k,v) pair or updates the value if the key already existsremove(k)
removes the pair with the key k if it existsfind(k)
finds the value v, or the pair (k,v) with key k, if it exists
Hash Functions Defined
- A hash function maps keys K to integers: h: K → ℤ
- Often limits to smaller values for some m where h: K → {0, ..., m-1}
- The operations can be calculated with mod m
- h'(x) = h(x) mod m will return an element, for example a 64-bit number
Types and Properties
- Hash functions are defined on integers, arrays of integers, strings (arrays of numbers), and objects (arrays of bytes)
- Hash functions should be random with all outputs being equally probable
- Hash functions should be fast and scramble the bits such that a 1-bit change flips half the bits
Hash Functions for Integers
- The simplest hash function is h(k) = k mod m, but this isn't ideal because 0, m, 2m,... all map to the same value
- For a w-bit integer x ∈ {0, ..., 2w - 1}, ha(x) = a * x mod p is a better hash function if p is prime; all operations are performed mod 2w, like 32-bit or 64-bit integers
Optimized Integer Hash
- If m is a power of 2, such as m = 2l and a is odd, then ha(x) = (a * x mod 2w) / 2w-l is a better hash function mapping numbers from 0 up to m-1
mod 2w
occurs automatically if w is the bit size in the computer- Division by
2w-l
is performed with a bitshift left:>> (w-l)
- This method is very fast with good distribution, where 'a' is often chosen randomly as an odd number
Random Hash Functions
- When analyzing algorithms, it often assume that the hash function is random
- h(x) is a random number where all values are equally probable
- All h(x) values are mutually independent
- This assumption is reasonable for real-world values, but the analysis becomes more complex if this assumption is not made
Strings and Arrays as Numbers
- For an array of numbers x = (x0, ..., xk-1), two hash functions are defined:
- Karp-Rabin: hKR(x) = (∑ xi * di) mod p mod m, where d = 28 for bytes, calculated using Horner's rule, with p as a prime number
- ha(x) = a * x = ∑ ai * xi mod m, where a = (a0, ..., ak-1) is chosen randomly
Balls and Buckets
- Imagine throwing m balls into n buckets where each ball lands in a bucket randomly
- The Birthday Paradox states that to get two balls in the bucket, you need O(√n) balls
- Probability until the first bucket receives two balls
Hash Tables with Linked Lists
- Given T which is an array of size m that stores linked lists
- Given h, a hash function: h: K → [m]
- The key k is stored in the linked list T[h(k)] if it's in the table
- Insert, remove, and find operations go to the correct list and search linearly
- Assuming the hash function h(k) has an O(1) runtime, access into the stores T is constant time when storing T
- Likely only need to look at the key if it does not exist in the table
Complexity Analysis
- Search in a linked list takes O(1 + α) time on average, where α = n/m (load)
- Probability of the key i ≠ k matching hash value is
P[h(i) = h(k)] = 1/m
, defining Xi = {1 if h(i) = h(k), 0 otherwise} - Calculate E[Xi], the expected number of keys in list k, and
E[∑ Xi] = ∑ E[Xi] = n/m = α
the time is ≤ 1 + α - Search in a linked list takes O(log(n)) time in the worst case
- The probability that t balls land in bucket 1 is P[fat 1 hellt hoke] = (n choose t) * (1/n)^t * (1 - 1/n)^(n-t)
- All hash functions will encounter a collision after approximately √n steps
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.