+ All Categories
Home > Documents > w11 Priority Queue

w11 Priority Queue

Date post: 18-Oct-2015
Category:
Upload: hoang-thanh-nguyen
View: 42 times
Download: 0 times
Share this document with a friend
Description:
trinh giao
Popular Tags:

of 42

Transcript
  • 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)


Recommended