Hash töflur og hash föll

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

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?

  • 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?

  • 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?

<p>Hakkatöflur geta boðið upp á aðgangstíma í nálægt O(1) að meðaltali, sem er betra en línulegur aðgangstími fylkja í versta falli. (A)</p> Signup and view all the answers

Hvaða áhrif hefur góð dreifing hakkafalls á frammistöðu hakkatöflu?

<p>Góð dreifing minnkar líkurnar á árekstrum og bætir þannig aðgangstímann. (B)</p> Signup and view all the answers

Hvað er átt við þegar talað er um að hakkafall sé "slembið"?

<p>Að allar mögulegar útkomur eru jafnlíklegar, óháð inntakinu. (C)</p> Signup and view all the answers

Í hvaða tilfellum er hakkatöflu með tengdum listum hentug til notkunar?

<p>Þegar búist er við mörgum árekstrum og mikilli fjölgun atriða í töflunni. (C)</p> Signup and view all the answers

Hvað er Afmælisdagsþversögnin í samhengi við hakkatöflur?

<p>Þversögn sem sýnir að það þarf færri gögn en ætla mætti til að fá árekstur í hakkatöflu. (B)</p> Signup and view all the answers

Hvernig getur stærð hakkatöflu haft áhrif á frammistöðu hennar?

<p>Tafla sem er of lítil eykur líkurnar á árekstrum, en tafla sem er of stór getur sóað minni. (C)</p> Signup and view all the answers

Hver af eftirfarandi aðgerðum er ekki algeng grunnaðgerð á hakkatöflum?

<p><code>sort()</code>: Raðar öllum gildum í hakkatöflunni í ákveðna röð. (D)</p> Signup and view all the answers

Hvað er átt við með fastayrðingu gagna í samhengi við hakkatöflur með tengdum listum?

<p>Það er fullyrðing um hvernig gögnin eru skipulögð innan töflunnar, t.d. að lykill k er geymdur í tengda listanum T[h(k)]. (A)</p> Signup and view all the answers

Hver af eftirfarandi kostum er mikilvægastur þegar velja á hakkafall fyrir hakkatöflu?

<p>Að hakkafallið dreifi lyklunum jafnt yfir töfluna. (A)</p> Signup and view all the answers

Hver er helsti kosturinn við að nota hakkaföll fyrir heiltölur sem byggjast á reikningi modulo prímtölu?

<p>Þau dreifa gildunum betur en hakkaföll sem nota veldi af 2. (B)</p> Signup and view all the answers

Hvaða vandamál geta komið upp ef hakkafall varpar öllum lyklum í sama sætið í hakkatöflu?

<p>Hakkatöflan virkar eins og tengdur listi og aðgangstími verður O(n). (D)</p> Signup and view all the answers

Hvernig er deilingu með $2^{w-l}$ framkvæmd í tölvu?

<p>Með bitshift til hægri. (A)</p> Signup and view all the answers

Hvað er átt við með því að hakkafall sé hraðvirkt?

<p>Það tekur stuttan tíma að reikna útkoman. (C)</p> Signup and view all the answers

Hvernig getur lítil breyting á inntakinu haft áhrif á úttak hakkafalls sem hefur eiginleikann rugli bitunum?

<p>Helmingur bitanna í úttakinu breytist. (B)</p> Signup and view all the answers

Hver er helsti kosturinn við að nota Karp-Rabin hakkafallið fyrir strengi og fylki af tölum?

<p>Það getur nýtt sér Horners reglu til að reikna hakkið á skilvirkan hátt. (D)</p> Signup and view all the answers

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?

<p>Leitartíminn nálgast O(n). (C)</p> Signup and view all the answers

Hver er munurinn á hakkatöflu og uppflettitöflu?

<p>Það er enginn munur, hugtökin eru notuð til skiptis. (D)</p> Signup and view all the answers

í hakkatöflu með tengdum listum, hvað er O(1 + α) tíminn sem leitin tekur að meðaltali táknar?

<p>Línulega tíma. (C)</p> Signup and view all the answers

Af hverju viljum við að hakkaföll séu slembin?

<p>Til að dreifa gildunum jafnt og draga úr líkum á árekstrum. (C)</p> Signup and view all the answers

Í samhengi hakkatöflu, hvað er 'árekstur'?

<p>Þegar hakkafallið gefur sömu staðsetningu fyrir tvo mismunandi lykla. (A)</p> Signup and view all the answers

Hvaða fullyrðing er sönn um hakkatöflur?

<p>Aðgangstími að stökum er að meðaltali O(1) en getur verið O(n) í versta falli. (A)</p> Signup and view all the answers

Hvaða fullyrðing er rétt um Karp-Rabin reikniritið?

<p>Karp-Rabin reikniritið notar hakkfall til að finna undirstrengi í streng. (A)</p> Signup and view all the answers

Hvað táknar breytan a í hakkafallinu $h_a(x) = (a imes x) \mod p$?

<p>Slembitölu sem valin er af handahófi. (B)</p> Signup and view all the answers

Hvað gerist ef reynt er að setja lykil sem þegar er til staðar í hakkatöflu með aðferðinni insert(k, v)?

<p>Gamla gildið er uppfært með því nýja. (A)</p> Signup and view all the answers

Hvað er gert við árekstra í hakkatöflu með tengdum listum?

<p>Nýja lyklinum er bætt við í lok tengda listans á þeirri staðsetningu. (C)</p> Signup and view all the answers

Hvað er kosturinn við að nota fastayrðingar gagna í reikniritum?

<p>Þau einfalda hönnun og villuleit reiknirita. (A)</p> Signup and view all the answers

Hvaða af eftirfarandi er dæmi um hakkafall sem notað er fyrir heiltölur?

<p><code>h(k) = k mod m</code> (C)</p> Signup and view all the answers

Hvað af eftirfarandi er algeng leið til að leysa árekstra í hakkatöflum?

<p>Línuleg prófun. (B)</p> Signup and view all the answers

Í hvaða gagnagrind er hakkatöflu oftast líkt?

<p>Fylki. (A)</p> Signup and view all the answers

Hvað af eftirfarandi er mikilvægt að hafa í huga þegar hakkafall er valið?

<p>Að það dreifi gildunum jafnt. (B)</p> Signup and view all the answers

Í hakkatöflu, hvað er átt við með hugtakinu "álag" (e. load factor)?

<p>Hlutfallið milli fjölda staka og stærðar töflunnar. (B)</p> Signup and view all the answers

Flashcards

Uppflettitöflur

Grunnvallar gagnagrind, innbyggð í mörg forritunarmál undir mismunandi heitum.

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)

Fjarlægir parið með lykilinn k úr töflunni ef parið er til.

find(k)

Finnur gildið v, eða parið (k, v) með lykil k ef það er til.

Signup and view all the flashcards

Hakkafall

Er vörpun frá lyklum K yfir í heiltölur. Forrit sem breytir gögnum í einstakt gildi.

Signup and view all the flashcards

Slembin Hakkaföll

Hakkaföll áætla staðsetningu gagna, og við viljum að útkomurnar séu eins jafnar og hægt er.

Signup and view all the flashcards

h(k) = k mod m

Einfaldasta hakkafallið, en getur verið óhagkvæmt ef m deilir lyklunum jafnt.

Signup and view all the flashcards

h(x) = a * x mod p

Betra hakkafall sem notar prímtölu til að jafna dreifinguna.

Signup and view all the flashcards

hₐ(x) = a * x = ∑ aᵢ * xᵢ mod m

Hakkafall fyrir fylki af tölum, notar Horner's reglu til að reikna.

Signup and view all the flashcards

Hakkatöflur með tengdum lista

Aðferð til að leysa árekstra í hakkatöflum með því að geyma lykla í tengdum listum.

Signup and view all the flashcards

O(1 + α)

Tíminn sem það tekur að leita í tengdum lista í hakkatöflu, þar sem α er álagið.

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 exists
  • remove(k) removes the pair with the key k if it exists
  • find(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.

Quiz Team

Related Documents

More Like This

Hash Table with Linear Probing
3 questions

Hash Table with Linear Probing

MotivatedHippopotamus avatar
MotivatedHippopotamus
Hash Table and Hash Function Quiz
10 questions
Hash Table Operations
10 questions
Hash Tables and Algorithm Analysis
5 questions
Use Quizgecko on...
Browser
Browser