CS 225 Data Structures October 24 Hashing Wad ade Fag agen-Ulm - - PowerPoint PPT Presentation

cs 225
SMART_READER_LITE
LIVE PREVIEW

CS 225 Data Structures October 24 Hashing Wad ade Fag agen-Ulm - - PowerPoint PPT Presentation

CS 225 Data Structures October 24 Hashing Wad ade Fag agen-Ulm lmschneid ider Oct ctober 24 - Ha Hashin ing A Hash Table based Dictionary ry Client Code: 1 Dictionary<KeyType, ValueType> d; 2 d[k] = v; A Hash Table


slide-1
SLIDE 1

CS 225

Data Structures

October 24 – Hashing

Wad ade Fag agen-Ulm lmschneid ider

slide-2
SLIDE 2

Oct ctober 24 - Ha Hashin ing

slide-3
SLIDE 3

A Hash Table based Dictionary ry

A Hash Table consists of three things:

  • 1. A hash function, f(k)
  • 2. An array
  • 3. Something to handle chaos when it occurs!

Dictionary<KeyType, ValueType> d; d[k] = v; 1 2

Client Code:

slide-4
SLIDE 4

A Perfect Hash Function

(Angrave, CS 241) (Beckman, CS 421) (Cunningham, CS 210) (Davis, CS 101) (Evans, CS 126) (Fagen-Ulmschneider, CS 225) (Gunter, CS 422) (Herman, CS 233)

Hash function Key Value

slide-5
SLIDE 5

A Perfect Hash Function

Hash function Key Value 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Keyspace: Rolling 5 dice!

slide-6
SLIDE 6

Hash Function

Our hash function consists of two parts:

  • A hash:
  • A compression:

Choosing a good hash function is tricky…

  • Don’t create your own (yet*)
  • Very smart people have created very bad hash functions
slide-7
SLIDE 7

Hash Function

Characteristics of a good hash function:

  • 1. Computation Time:
  • 2. Deterministic:
  • 3. Satisfy the SUHA:
slide-8
SLIDE 8

General Purpose Hash Function

… Keyspaces Easy to create if: |KeySpace| N ~

slide-9
SLIDE 9

General Purpose Hash Function

… Keyspaces Easy to create if: |KeySpace| N ~ … Difficult to Create:

slide-10
SLIDE 10

General Purpose Hash Function

… Keyspaces Easy to create if: |KeySpace| N ~ … Difficult to Create:

slide-11
SLIDE 11
slide-12
SLIDE 12
slide-13
SLIDE 13
slide-14
SLIDE 14
slide-15
SLIDE 15
slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18
slide-19
SLIDE 19

Nick Holonyak

  • Invented the visible-light LED
  • Professor of ECE at UIUC
  • Celebrating his 90th birthday!
slide-20
SLIDE 20
slide-21
SLIDE 21
slide-22
SLIDE 22

MAIN QUAD

slide-23
SLIDE 23

A CS 225 Field Trip (S (Section AL1, , 11am ONLY)

This Friday (Oct. 26), CS 225-AL1 (11:00am) will meet in Lincoln Hall Theater instead of ECEB. CS 225-AL2 (2:00pm) will meet in ECEB as normally

  • scheduled. (However, feel free to come to AL1!)
slide-24
SLIDE 24

MP5

slide-25
SLIDE 25
slide-26
SLIDE 26
slide-27
SLIDE 27

MP5

slide-28
SLIDE 28

MP5

slide-29
SLIDE 29

Hash Function

Given: Easy to create a hash function of strings of length 8.

slide-30
SLIDE 30

Idea: Map 40 character things to length 8:

Alice was beginning to get very tired of sitting by her sister on the bank, and

  • f having nothing to do: once or twice s

he had peeped into the book her sister w as reading, but it had no pictures or co nversations in it, ‘and what is the use

  • f a book,’ thought Alice ‘without pictu

res or conversations?’ So she was consi dering in her own mind (as well as she c

  • uld, for the hot day made her feel very

sleepy and stupid), whether the pleasur e of making a daisy-chain would be worth the trouble of getting up and picking t he daisies, when suddenly a White Rabbit with pink eyes ran close by her. There was nothing so very remarkable in that; nor did Alice think it so very much out

  • f the way to hear the Rabbit say to it

self, ‘Oh dear! Oh dear! I shall be late !’ (when she thought it over afterwards, it occurred to her that she ought to ha

slide-31
SLIDE 31

Idea: Map 40 character things to length 8:

https://en.wikipedia.org/wiki/Main_Page https://en.wikipedia.org/wiki/Battle_of_ https://en.wikipedia.org/wiki/Vector_Gen https://en.wikipedia.org/wiki/2017_Austr https://en.wikipedia.org/wiki/19th_Natio https://en.wikipedia.org/wiki/Japanese_g

slide-32
SLIDE 32

Hash Function

In CS 225, we focus on general purpose hash functions. Other hash functions exists with different properties (eg: cryptographic hash functions)

slide-33
SLIDE 33

Collision Handling: Separate Chaining

S = { 16, 8, 4, 13, 29, 11, 22 } |S| = n h(k) = k % 7 |Array| = N

1 2 3 4 5 6 Worst Case SUHA Insert Remove/Find (Example of open hashing)

slide-34
SLIDE 34

Collision Handling: Probe-based Hashing

S = { 16, 8, 4, 13, 29, 11, 22 } |S| = n h(k) = k % 7 |Array| = N Try h(k) = (k + 0) % 7, if full… Try h(k) = (k + 1) % 7, if full… Try h(k) = (k + 2) % 7, if full… Try …

1 2 3 4 5 6 (Example of closed hashing)