data structure lesson12

Page 13

!!% 0

1

2

4

เพิม่ 58 (1 probe)

3 58

5

6

เพิม่ 70 (1 probe)

58

70

เพิม่ 17 (1 probe)

58

70

เพิม่ 36 (3 probes)

58

70

36

17

เพิม่ 4 (3 probes)

58

70

36

17

7

8

9

10

17

4

ภาพประกอบ 12.2 การเพิ่มขอมูลในตารางแฮชที่ใช linear probing การเพิม่ 58, 70, และ 17 ใชเพียงหนึ่ง probe ตอหนึ่งขอมูล เนื่องจากหลังการแฮชครั้งแรกแลวพบชองวางทัน ที แตพอเพิ่ม 36 ซึ่งถูกแฮชไปที่ชองหมายเลข 3 พบวาชนก็ตอง probe ตอที่ ชอง 4 ซึง่ ก็ชนอีกก็ probe ตอ ที่ชอง 5 จึงจะพบวาวาง (สําหรับการเพิม่ 4 นัน้ ขอใหนักศึกษาลองไลดูวาไดตามที่แสดงไวหรือไม) ขอดีของ linear probing ก็อยูตรงที่งายดี มีชองวางในตารางเหลืออยูก็ตอง probe พบแนๆ 8 แตขอเสีย ก็คือเกิดสภาวะที่เรียกวาขอมูลเกาะกลุมกัน ยิ่งเกาะกลุมกันมาก ยิ่งทําใหมีพฤติกรรมการ probe ที่ เปนแบบลําดับนั้นยาวขึ้นเรื่อยๆ ลองดูภาพประกอบ 12.3 ตารางแฮชที่ใช linear probing จะเขาใจมากขึ้น รูปนี้แสดงตารางแฮชที่มีการเพิ่มขอมูลไปจํานวนหนึ่ง ขอมูลตางๆ ในตารางถูก แสดงดวยเสนสีดาํ เสนสีดาํ ทีเ่ กาะกลุม กันจนเปนสีเ่ หลีย่ มสีดาํ ขนาดความกวางแตกตางกัน แสดงใหเห็นถึง จํานวนขอมูลที่อยูติดกันในตาราง ชองสีขาวก็คือสวนของตารางที่วาง ถาจะถามตรงนี้วาการเพิ่มขอมูลตัวตอ ไป จะมีโอกาสไปถูกเก็บที่ที่ใดมากที่สุด ถาฟงกชันแฮชกระจายดี ขอมูลตัวถัดไปนั้นจะมีโอกาสถูกแฮชไปที่ ชองใดๆ ดวยโอกาสเทาๆ กัน ขอใหดูกลุมขอมูลที่เกาะกลุมกันใหญสุดในตาราง (ชองสีดาํ ชุดทีส่ องจากทาง ซาย) ไมวาขอมูลใหมจะถูกแฮชมาชนกับขอมูลตัวใดในกลุมนี้ ก็จะตองถูกจับใหไปเก็บที่ชองถัดไปทางขวาที่ วางของกลุมนี้ (ดวยพฤติกรรมของ linear probing) สงผลใหกลุมนี้มีขนาดโตขึ้น เนื่องจากกลุมนี้มีขนาดใหญ สุดในตาราง ก็ยอมเปนกลุมที่มีโอกาสโตขึ้นมากที่สุด เราเรียกลักษณะการเกาะกลุม และการโตของกลุม เชนนี้ วา primary clustering (บางที่เรียกวา cookie monster effect ขอใหนักศึกษาลองคิดดูวาทําไมถึงเรียกเชนนี้)

ภาพประกอบ 12.3 ตารางแฮชที่ใช linear probing

8

อีกทัง้ เนือ่ งจากลําดับการ probe เปนการดูชอ งถัดไปเรือ่ ยๆ สงผลใหการเขาถึงขอมูลในหนวยความจํานัน้ รวดเร็วมาก ดวย สถาปตยกรรมการจัดการหนวยความจําเปน cache หลายๆ ระดับของคอมพิวเตอรในปจจุบนั


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.