w11 priority queue
DESCRIPTION
trinh giaoTRANSCRIPT
-
5/28/2018 w11 Priority Queue
1/42
Bi 8: Hngutin
Gingvin: Hong Th ip
Khoa Cng nghThng tin HCng Ngh
-
5/28/2018 w11 Priority Queue
2/42
Nidung
KDLTT hng u tin
Ccphngphp ci t
ng dng: xy dng m Huffman
INT2203
-
5/28/2018 w11 Priority Queue
3/42
KDLTT hngutin(priority queue)
L tp hp trong mi phnt l mt cp(gi tr utin,i tng) ta c thso snhccc
gi tr utin
Cc php ton insert(k, o) xen vo hngu
tini tngo c gi tr utin k.
findMin() tmi tngc gi
tr utin nhnht.Thchincnuhng khng rng
removeMin() loibv trvi tngc gi tr utinnhnht. Thchin cnuhng khng rng.
findMinKey() tm gi tr utin
nhnht.Thchin cnuhng khng rng
size()
isEmpty()
ngdng
Qunlbngthng Sdngtrong thitkcc
thutton (Huffman)
INT2203
-
5/28/2018 w11 Priority Queue
4/42
Minh ha
INT2203
Php ton Output Hng utin
insert(5,A) - {(5,A)}
insert(9,C) - {(5,A), (9,C)}
insert(3,B) - {(3,B), (5,A), (9,C)}
insert(7,D) - {(3,B), (5,A), (7,D), (9,C)}
findMin() B {(3,B), (5,A), (7,D), (9,C)}findMinKey() 3 {(3,B), (5,A), (7,D), (9,C)}
removeMin() - {(5,A), (7,D), (9,C)}
size() 3 {(5,A), (7,D), (9,C)}
findMin () A {(5,A), (7,D), (9,C)}
removeMin() - {(7,D), (9,C)}removeMin() - {(9,C)}
removeMin() - {}
removeMin() error {}
isEmpty() true {}
-
5/28/2018 w11 Priority Queue
5/42
Nidung
KDLTT hng u tin
Ccphngphp ci t
ng dng: xy dng m Huffman
INT2203
-
5/28/2018 w11 Priority Queue
6/42
Ccphngphp ci t
INT2203
findMin insert removeMin
Mng csp ? ? ?
Mngkhng sp ? ? ?
DSLKcsp ? ? ?
DSLK khng sp ? ? ?
Cy TKNP ? ? ?
Cy thtbphn(heap)
? ? ?
-
5/28/2018 w11 Priority Queue
7/42
Ci thngutin bidanh sch
V d Minh hamng
Danh schcsp
Q = {(3,B), (5,A), (7,D), (9,C)}
findMin()
insert(8, E)removeMin()
Danh schkhng sp
Q = {(7,D), (3,B), (9,C), (5,A)}
findMin()
insert(8, E)
removeMin()
INT2203
9,C 7,D 5,A 3,B
9,C 7,D 5,A 3,B
9,C 8,E 7,D 5,A 3,B
9,C 8,E 7,D 5,A
7,D 3,B 9,C 5,A
7,D 3,B 9,C 5,A
7,D 3,B 9,C 5,A 8,E
7,D 9,C 5,A 8,E
-
5/28/2018 w11 Priority Queue
8/42
Ci t hngutin bicy tm kim nh phn
INT2203
7,D
9,C3,B
5,A2,F 8,E
7,D
9,C3,B
5,A2,F 8,E
7,D
9,C3,B
5,A2,F 8,E
4,G
7,D
9,C3,B
5,A2,F 8,E
4,G
1. hngutin 2. findMin()
3. insert(4,G)4. removeMin()
-
5/28/2018 w11 Priority Queue
9/42
Cy thtbphn(heap)
Cy nhphn hon ton c ttccc mccacyu
khng thiu nhno, trmcthpnht clp yktbn tri
Min heap l mtcy nhphnhon ton vitnh cht kha camt nhbtknh
hnhocbngkha caccnhcon can
Max heap Citheap
c thdng cutrc lin kt(con tr)
c thdng mng
cao caheap l log(n) INT2203
2
35
79 8
0
1 2
3 4 5
2 5 3 9 7 8
-
5/28/2018 w11 Priority Queue
10/42
Ci thngutin biheap
findMin?
insert?
removeMin?
INT2203
2,F
3,B5,A
7,D9,C 8,E
0
1 2
3 4 5
2,F 5,A 3,B 9,C 7,D 8,E
-
5/28/2018 w11 Priority Queue
11/42
Xen thm vo heap
Phpinsertcahngutintng ngviphpxen thm mtphntckhakvo heap
Thutton Tm tivtrz aphntmivo (lnhcuimi)
Luphntc khakvoz
Khi phctnh chtthtbphncaheap
INT2203
2
65
79
insertion node
2
65
79 1
z
z
z
z
-
5/28/2018 w11 Priority Queue
12/42
Upheap
Sau khi xen thm mtkhak mi, heap c thmt itnh chtthtbphn
Thutton upheap khi phclitnh chtny bngcchochkdctheong it nhmi hngtigc
Upheap dnglikhiktintigchocmt nhc kha cacha k
V heap ccaoO(logn), upheap thchintrong thigianO(logn)
INT2203
2
15
79 6z
1
25
79 6z
-
5/28/2018 w11 Priority Queue
13/42
Loimtphntkhiheap
Php removeMin cahngutintng ngviphp loigccaheap
Thutton Thay thgcbng nhcuicngw
Giiphngnhw Khi phctnh chttht
bphncaheap
INT2203
2
65
79
nhcui
w
7
65
9
w
-
5/28/2018 w11 Priority Queue
14/42
Downheap
Sau khi thay th nhgcvi nhcui(c khak), heap c thmtitnh chtthtbphn
Thutton downheap khi phclitnh chtny bngcchochnhc khakdctheong itgcxung
Upheap dngkhiktintimtl hay mt nhc cc kha con k Do heap ccaoO(logn), downheap thchintrong thigianO(logn)
INT2203
7
65
9
w
5
67
9
w
-
5/28/2018 w11 Priority Queue
15/42
Cpnhtcon trti nhcui
Dng trong citheap bngcutrc lin kt
C thtm chchonhsthm vo bngcchitheo hnh trnhgmO(logn) nh iln tikhi gpmtcon tri hocgpgc
Nugpmtcon tri th chuynsang con phi ixungtikhi gpmtl
p dngthuttontngtcho cpnhtcon trti nhcuitrongphp loibmt nh
INT2203
-
5/28/2018 w11 Priority Queue
16/42
Minh hacithngutin
INT2203
(4,C)
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(6,Z)
(7,Q) (20,B)
(11,S) (18,W)
heap
last
comp
-
5/28/2018 w11 Priority Queue
17/42
(18,W)
insert(2,T)
INT2203
(4,C)
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(6,Z)
(7,Q) (20,B)
(11,S)
-
5/28/2018 w11 Priority Queue
18/42
(18,W)
insert(2,T)
INT2203
(4,C)
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(6,Z)
(7,Q) (20,B)
(11,S) (2,T)
-
5/28/2018 w11 Priority Queue
19/42
(18,W)
insert(2,T)
INT2203
(4,C)
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(6,Z)
(7,Q) (20,B)
(11,S) (2,T)
o(2,T) v(20,B)
-
5/28/2018 w11 Priority Queue
20/42
(6,Z)
(20,B)(18,W)
insert(2,T)
INT2203
(4,C)
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(7,Q) (2,T)
(11,S)
o(2,T) v(6,Z)
-
5/28/2018 w11 Priority Queue
21/42
(2,T)
(20,B)(18,W)
insert(2,T)
INT2203
(4,C)
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(7,Q) (6,Z)
(11,S)
o
(2,T) v(4,C)
-
5/28/2018 w11 Priority Queue
22/42
(4,C)
(20,B)(18,W)
insert(2,T)
INT2203
(2,T)
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(7,Q) (6,Z)
(11,S)
Sau thigian O (log n) th cy lithnh mtheap
-
5/28/2018 w11 Priority Queue
23/42
(18,W)
removeMin()
INT2203
(4,C)
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(6,Z)
(7,Q) (20,B)
(11,S)
-
5/28/2018 w11 Priority Queue
24/42
(18,W)
removeMin()
INT2203
(4,C)
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(6,Z)
(7,Q) (20,B)
(11,S)
-
5/28/2018 w11 Priority Queue
25/42
removeMin()
INT2203
(18,W)
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(6,Z)
(7,Q) (20,B)
(11,S)
o(18,W)v (5,A)
-
5/28/2018 w11 Priority Queue
26/42
removeMin()
INT2203
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(6,Z)
(7,Q) (20,B)
(11,S)
o(18,W)v (9,F)
(18,W)
-
5/28/2018 w11 Priority Queue
27/42
removeMin()
INT2203
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E) (12,H)
(6,Z)
(7,Q) (20,B)
(11,S)
o(18,W)v (12,H)
(18,W)
-
5/28/2018 w11 Priority Queue
28/42
removeMin()
INT2203
(5,A)
(15,K)
(16,X) (25,J)
(9,F)
(14,E)
(12,H)
(6,Z)
(7,Q) (20,B)
(11,S)(18,W)
nhcui
-
5/28/2018 w11 Priority Queue
29/42
phctp
phctpkhng gian Ci bngcutrc lin kt(dng con tr): O(n)
Ci bngcutrc vector (mng): tlviN (ccamng)
phctpthigian
INT2203
Php ton Thigian
size, isEmpty O (1)
findMin, findMinKey O (1)
insert O (log n)
removeMin O (log n)
-
5/28/2018 w11 Priority Queue
30/42
Tngkt
INT2203
findMin insert removeMin
Mng csp O(1) O(n) O(1)
Mngkhng sp O(n) O(1) O(n)
DSLKcsp O(1) O(n) O(1)
DSLK khng sp O(n) O(1) O(n)
Cy TKNP O(h) O(h) O(h)
Cy thtbphn(heap)
O(1) O(logn) O(logn)
-
5/28/2018 w11 Priority Queue
31/42
Nidung
KDLTT hng u tin
Ccphngphp ci t
ng dng: xy dng m Huffman
INT2203
-
5/28/2018 w11 Priority Queue
32/42
Nn dliu
Giscnnn mttpdliucha100000 k ttbng6 chci (ta nf).
Mdi gingnhau (a) biudinmichci bi3 bit
(thay v 8 bit nh thngl) tlnn = 3/8
Mdi khc nhau (b) dng khi ta bittnsutcacc
chci
gn m ngnnhtcho chci
xuthinnhiunht kchthcfile nn:
(451 + 133 + 123 + 163 + 94 +54) 1000 = 224 000 bits
tlnn = 0.28
Chci a b c d e f Tm 000 001 010 011 100 101
INT2203
Chci a b c d e f Tnsut(K) 45 13 12 16 9 5
Tm 0 101 100 111 1101 1100
(a)
(b)
Ch : khng c m noclmtintcam khc
o gil m tint(prefix code)
o mc ch: phcvgiinn
Bi ton: xy dngm tintvitlnn thpnht
o Ligii: m Huffman
-
5/28/2018 w11 Priority Queue
33/42
M Huffman
Biudinm tint didngcy nhphn timi nh, nhnh tric
gnnhn l 0, nhnh bn phicgnnhn l 1
mik t c lutrong mtnhl tm camik tl xu bit
tothnh tcc nhn trnng itgcti nhlchak t
Thutton Huffman sdnghngutinxy dngmtint didngcy nhphn M sinh ra gilm Huffman
INT2203
Chci a b c d e f Tnsut(K) 45 13 12 16 9 5
Tm 0 101 100 111 1101 1100
100
45(a)
55
25 30
12(c)
13(b)
14 16(d)
5(f) 9(e)
0
0
0 0
0
1
1
1
1
1
-
5/28/2018 w11 Priority Queue
34/42
Thutton Huffman
Vimik txuthintrong xungun, ta tora mt nhchakt gnvigi tr utin bngtn
sut
Ttpcc cy chc mt nh, timi bcta kthphai cy thnhmtcy nhcha sgnvigi tr utin
bngtng utin cc con
ta cnchnhai cy nhphn c
mc utin nhnhtkthpthnh mt dng hngutin.
INT2203
Algorithm HuffmanCoding(S,F)Input: Bngchci S v bngcc tn
sutFOutput: cy HuffmanTo ra mt nh cho mik ttrong SKhi to hng u tin P cha ccnh
nyfori=0to n-1do
v1 P.removeMin()v2 P.removeMin()Toranhv mivi
leftChild(v) v1
rightChild(v) v2f(v) f(v1) + f(v2)
P.insert(v)
-
5/28/2018 w11 Priority Queue
35/42
INT2203
45(a)
12(c)
13(b)
16(d)
5(f)
9(e)
-
5/28/2018 w11 Priority Queue
36/42
INT2203
45(a)
12(c)
13(b)
14 16(d)
5(f)
9(e)
0 1
-
5/28/2018 w11 Priority Queue
37/42
INT2203
45(a)
25
12(c)
13(b)
14 16(d)
5(f)
9(e)
0
0 1
1
-
5/28/2018 w11 Priority Queue
38/42
INT2203
45(a)
25 30
12(c)
13(b)
14 16(d)
5(f)
9(e)
0 0
0
1
1
1
-
5/28/2018 w11 Priority Queue
39/42
INT2203
45(a)
55
25 30
12(c)
13(b)
14 16(d)
5(f)
9(e)
0
0 0
0
1
1
1
1
-
5/28/2018 w11 Priority Queue
40/42
INT2203
100
45(a)
55
25 30
12(c)
13(b)
14 16(d)
5(f)
9(e)
0
0
0 0
0
1
1
1
1
1
-
5/28/2018 w11 Priority Queue
41/42
Nidung
KDLTT hng u tin
Ccphngphp ci t
ng dng: xy dng m Huffman
INT2203
-
5/28/2018 w11 Priority Queue
42/42
Chunbbi ti
c chng 16(Thitkthutton)