Professional Documents
Culture Documents
1 2 3 4 5
Cc c u trc d" li%u c( b)n C u trc cy Tree Structure Cy nh+ phn tm ki-m Binary Search Tree Cc d*ng cy nh+ phn tm ki-m cn b.ng B)ng b/m Hash Table
168/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM
Autumn 2009
Bi ton:
Cho m t t$p cc ph&n t( (key). C&n t+ ch-c l)u tr/ v tm ki1m sao cho hi4u qu5 (chi ph th6p) ?
Autumn 2009
170/203
Gi$ s4 c m
t t7p kho U:
Kch th)Bc khng qu lBn Cc gi trC kho phn bi4t VD. U = {0, 1, 2, , 9}
M hnh minh h9a dng direct-address table T[m] 2: l3u tr; cc kho trong t7p U
Autumn 2009 172/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM
Direct-address table:
M t m5ng T[m] (T[0],,T[m-1]) 9E ch-a cc kho trong t$p U |T| = |U| MFi vC tr T[k] (slot) sH ch-a:
Kha k, hay NULL n1u kho k khng c trong t$p h:p
L3u :
U (Universe of keys): t$p cc gi trC kha K (Actual keys): t$p cc kho thIc sI 9):c dng
Autumn 2009
174/203
Khi t7p kha K nh> h*n nhi?u (VD) so v)i t7p U Do 2, khng th: p d0ng nh x< trDc ti8p
T[k] k 23Ec n;a
m = (|K|)
ta ch@ dng m$ng T[m] v)i kch th3)c vBa 2= cho t7p K
Hm b
m h: dng 2: nh x< cc kho c=a t7p U vo nh;ng slot c=a b#ng b m T[0..m-1]
Autumn 2009
176/203
Cc tnh chIt:
C6u trc l)u tr/ dng trong Hash table th)?ng l danh sch 9Pc: m5ng hay file Thao tc c; b5n 9):c cung c6p bQi Hash table l tm ki3m (lookup) Chi ph trung bnh l O(1) Chi ph tm ki1m x6u nh6t (t gPp) c thE l O(n)
Autumn 2009
179/203
t cch l t3Lng, hm b'm sM nh x< mNi kho vo m t slot ring bi,t c=a b$ng T
Autumn 2009
180/203
chIp nh7n m%t t) l+ nh- cc kho ./ng .% v xy dDng ph3*ng n gi$i quy8t sD 20ng 2 2
Hm b'm [1/6]
Autumn 2009
182/203
Hm b'm [2/6]
t hm b'm tPt l y8u tP tin quy8t 2: t<o ra b$ng b'm hi,u qu$
Autumn 2009
183/203
Hm b'm [3/6]
Autumn 2009
184/203
Hm b'm [4/6]
Hm b'm [5/6]
Autumn 2009
186/203
Hm b'm [6/6]
Autumn 2009
187/203
10
Ph3*ng php nPi k8t (Separate chaining) Ph3*ng php 2Fa ch@ mL (Open
addressing)
Autumn 2009
188/203
vo m t slot, l3u
11
Ph3*ng php chaining b$ng T ch@ l3u con tr> c=a linked-list
Autumn 2009
190/203
Ph3*ng php chaining b$ng T l3u phOn t4 2Ou tin + con tr> c=a linked-list
Autumn 2009 191/203 (C) Nguyen Tri Tuan - DH.KHTN Tp.HCM
12
Autumn 2009
192/203
Autumn 2009
193/203
13
Autumn 2009
194/203
14
Autumn 2009
196/203
ch@ (address) c=a phOn t4 khng ph$i ch@ 23Ec xc 2Fnh bQng duy nhIt hash value c=a phOn t4 2, m cn c sD can thi,p c=a php d tm (probing)
Autumn 2009
197/203
15
Linear probing
M t$:
h(k, i) = (h(k) + i) mod m
i: th- tI c7a l&n th( (i = 0, 1, 2,) h(k): hm bMm m: sJ slot c7a b5ng bMm h(k, i): 9Ca chN c7a kha k t<i l&n th( th- i
Autumn 2009
198/203
Quadratic probing
M t$:
h(k, i) = (h(k) + i2) mod m
i: th- tI c7a l&n th( (i = 0,1,2,) h(k): hm bMm m: sJ slot c7a b5ng bMm h(k, i): 9Ca chN c7a kha k t<i l&n th( th- i
Autumn 2009
199/203
16
Double hashing
M t$:
h(k, i) = (h(k) + i*h(k)) mod m
i: th- tI c7a l&n th( (i = 0,1,2,) h(k) v h(k) : hm bMm m: sJ slot c7a b5ng bMm h(k, i): 9Ca chN c7a kha k t<i l&n th( th- i
Autumn 2009
200/203
Bi t7p
Autumn 2009
201/203
17
V d0
Bi t7p:
C 1 b5ng bMm T, chiLu di m = 11; hm bMm h(k) = k mod m Cho m t dy ph&n t( theo th- tI nh) sau: 10, 22, 31, 4, 15, 28, 17, 88, 59 Hy trnh by k1t qu5 khi thm cc ph&n t( trn vo b5ng bMm, vBi l&n l):t tTng ph);ng php x( l 9Ang 9 :
NJi k1t (Chaining) D tu&n tI (Linear probing) D b$c 2 (Quadratic probing) BMm kp (Double hashing), vBi h(k) = 1 + (k mod (m 1))
Autumn 2009
202/203
Q&A
QL?
AJ
Autumn 2009
203/203
18