1. Trang chủ
  2. » Giáo án - Bài giảng

6 1 hasttables tủ tài liệu training pdf

13 46 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 1,56 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

RESOLVING COLLISIONSSUCH THAT Collision: dis6nct Solu6on # 1 : separateti chaining -‐keep linked list in each bucket -‐ given a key/object x, perform Insert/Delete/Lookup in the list in

Trang 1

DATA STRUCTURES

Hash Tables and Applica5ons

Design and Analysis

of Algorithms I

Trang 9

57

184

367

Consider 𝑛 people with random birthdays (i.e., with each day of the year equally likelyti How large does 𝑛 need to be before there

is at least a 50% chance that two people have the same birthday?

50 %

99 %

99.99….%

100%

Trang 10

RESOLVING COLLISIONS

SUCH THAT

Collision: dis6nct

Solu6on # 1 : (separateti chaining

-‐keep linked list in each bucket

-‐ given a key/object x, perform Insert/Delete/Lookup in

the list in A[h(xti]

Solu6on #2 : open addressing (only one object per

bucketti

-‐Hash func6on now specifies probe sequence h(keep trying 6ll find open 1(xti,h2(xti,

slotti

-‐ Examples : linear probing (look consecu6velyti, double hashing

Bucket for x

Linked list for x

Use 2 hash func6ons

Nextcore AI -Gopal Shangari

Trang 11

WHAT MAKES A GOOD HASH FUNC6ON?

Note : in hash table with chaining, Insert is

for Insert/Delete

could be anywhere from m/n to m for m objects Point

: performance depends on the choice of hash func6on!

(analogous situa6on with open addressingti

Proper6es of a “Good” Hash func6on

1 Should lead to good performance => i.e., should “spread

data out” (gold standard – completely random hashingti

2 Should be easy to store/ very fast to evaluate

Insert new object x at front of list in

A[h(xti]

All objects in same bucket Equal-‐length lists

Nextcore AI -Gopal Shangari

Trang 12

Nextcore AI -Gopal Shangari

Example : keys = phone numbers (10-‐digitsti

-‐Terrible hash func6on : h(xti = 1st 3 digits of x

(i.e., area codeti

-‐ mediocre hash func6on : h(xti = last 3 digits of x

[s6ll vulnerable to pa t erns in last 3 digits ]

|u| = 1010

choose n = 103

Example : keys = memory loca6ons (will be mul6ples of a power of 2ti

-‐Bad hash func6on : h(xti = x mod 1000 (again n = 103ti

=> All odd buckets guaranteed to be empty

BAD HASH FUNC6ONS

Trang 13

QUICK-‐AND-‐DIRTY HASH FUNC6ONS

How to choose n = # of buckets

1 Choose n to be a prime ( within constant factor of # of objects in tableti

2 Not too close to a power of 2

3 Not too close to a power of 10

“hash code”

e.g., subrou6ne to convert strings to integers

“comparison func6on “

like the mod n func6on

Nextcore AI -Gopal Shangari

Ngày đăng: 17/11/2019, 07:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN