Priority Queue implementation Creating Heaps - - PowerPoint PPT Presentation

priority queue implementation creating heaps
SMART_READER_LITE
LIVE PREVIEW

Priority Queue implementation Creating Heaps - - PowerPoint PPT Presentation

Priority Queue implementation Creating Heaps " PriorityQueue


slide-1
SLIDE 1
  • Priority Queue implementation

PriorityQueue !" #

$!!

!!! %compareTo

  • Comparable this %
  • Comparator %

&#compareTo() compare()

%'( )*+!,--.

/

Creating Heaps

"

!0#

#1 2!3!'1(

14

"

  • #5'1(

!'(

5

6

Array-based heap

  • 758

!!1

  • 19

#12*k !#12*k+1

  • 5

!

  • /

6 : ; < =

  • >
  • 6 10 7 1713

25 9 21 19 6 10 7 17 13 9 21 19 25

:

Thinking about heaps

  • )
  • 1

?5

  • 1

1

  • $'(
  • @

6 10 7 17 13 9 21 19 25

/ 6 : ; < =

  • >
  • 6 10 7 1713

25 9 21 19

slide-2
SLIDE 2

;

Adding values to heap

  • 5 !

5

5 5578

  • !

5

  • !

A'3(

13 6 10 7 17 9 21 19 25 8 13 6 10 7 17 9 21 19 25 6 10 7 17 9 21 19 25 13 8 insert 8 bubble 8 up 6 7 17 9 21 19 25 8 13 10

<

Adding values, details (pseudocode)

void add(Object elt) { // add elt to heap in myList myList.add(elt); int loc = myList.size(); while (1 < loc && elt < myList[loc/2]) { myList[loc] = myList[loc/2]; loc = loc/2; // go to parent } // what’s true here? myList.set(loc,elt); } 13 6 10 7 17 9 21 19 25 8 13 6 10 7 17 9 21 19 25

/ 6 : ; < =

  • >
  • 6 10 7 1713

25 9 21 19 ArrayList myList

=

Removing minimal element

  • B5

!4

  • "

78 5 5

  • C5!

5'

(

  • 7

!8

? )

13 6 10 7 17 9 21 19 25 13 25 10 7 17 9 21 19 13 7 10 25 17 9 21 19 13 7 10 9 17 25 21 19

  • Text Compression

B#! $#!′

′ ′ ′

′ ′ ′

slide-3
SLIDE 3

>

Text Compression: Examples

  • CBB

D1 ! E !

  • “abcde” in the different formats

ASCII: 01100001011000100110001101100100… Fixed: 000001010011100 Var: 000110100110

1 1 1 1 a b c d e a d b c e 1 1 1 1

Encodings ASCII: 8 bits/character Unicode: 16 bits/character

  • Huffman coding: go go gophers
  • F!#

4! "6=GG 5!

CBB6"

g 103 1100111 000 00

  • 111 1101111 001 01

p 112 1110000 010 1100 h 104 1101000 011 1101 e 101 1100101 100 1110 r 114 1110010 101 1111 s 115 1110011 110 101

  • sp. 32 1000000

111 101

  • s
  • *
  • p
  • h
  • e
  • r
  • g
  • p
  • h
  • e
  • r
  • s
  • *
  • g
  • Huffman Coding

HC">;A &!3 )!5! E!! F! !55!

"

I# ?!05

5!

"! !

/

Building a Huffman tree

&!! '5( F44! @5# 3 )# )5!

@J!#'!(

H"! )5KK

slide-4
SLIDE 4

6

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

E

5

N

1

C

1

F

1

P

2

U

2

R

2

L

2

D

2

G

3

T

3

O

3

B

3

A

4

M

4

S

:

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

E

5

N

1

C

1

F

1

P

2

U

2

R

2

L

2

D

2

G

3

T

3

O

3

B

3

A

4

M

4

S

2 2

;

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

E

5

N

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

T

3

O

3

B

3

A

4

M

4

S

2 2 3 3

<

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

E

5

N

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

T

3

O

3

B

3

A

4

M

4

S

2 2 3 3 4 4

slide-5
SLIDE 5

=

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

E

5

N

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

T

3

O

3

B

3

A

4

M

4

S

2 2 3 3 4 4 4 4

  • Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

E

5

N

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 3 4 4 4 4 5 5

>

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

E

5

N

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 4 4 5 5 6 6

/

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

E

5

N

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 4 4 5 5 6 6 6 6

slide-6
SLIDE 6

/

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

E

5

N

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 4 4 5 5 6 6 6 8 8 6

//

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

E

5

N

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 5 6 6 6 8 8 6 8 8

/6

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 5 6 6 6 8 8 6 8 8 10 10

/:

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 6 8 8 6 8 8 10 10 11 11

slide-7
SLIDE 7

/;

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 8 6 8 8 10 10 11 11 12 12

/<

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 10 11 11 12 12 16

/=

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 12 16 21

/

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 16 21 23

slide-8
SLIDE 8

/>

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 23 37

6

Building a tree

“A SIMPLE STRING TO BE ENCODED USING A MINIMAL NUMBER OF BITS”

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60 60

6

Encoding

  • !$'(

/

&0 $'(

6

&" $'(

:

  • $'(

;

" $'(

6/

Properties of Huffman coding

3!! '!(

  • !

! "'(0 "! 78 "

=

) (

) (

T Leaf i i iw

d T L

slide-9
SLIDE 9

66

Writing code out to file

"!! &" ) !! @! I ! &B&$ H!5 "9 "#

6:

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

01100000100001001101

6;

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

1100000100001001101

6<

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

100000100001001101

slide-10
SLIDE 10

6=

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

00000100001001101

6

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

0000100001001101

G

6>

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

000100001001101

G

:

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

00100001001101

G

slide-11
SLIDE 11

:

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

0100001001101

G

:/

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

100001001101

G

:6

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

00001001101

G O

::

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

0001001101

G O

slide-12
SLIDE 12

:;

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

001001101

G O

:<

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

01001101

G O

:=

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

1001101

G O

:

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

001101

G O O

slide-13
SLIDE 13

:>

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

01101

G O O

;

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

1101

G O O

;

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

101

G O O

;/

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

01

G O O

slide-14
SLIDE 14

;6

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

1

G O O D

;:

Decoding a message

11 6

I

5

N

5

E

1

F

1

C

1

P

2

U

2

R

2

L

2

D

2

G

3

O

3

T

3

B

3

A

4

M

4

S

2 3 4 4 5 6 8 6 8 16 10 21 11 12 23 37 60

01100000100001001101

G O O D

;;

Decoding

  • )

$'(

/

H! $'(

;<

Huffman Tree 2

7CBI?F)B@L$&FF@$HFH2B@LC

B@BC?@2&F)$D&B8

F!7 CBI?F8 ⇔

⇔ ⇔ ⇔ 78

slide-15
SLIDE 15

;=

Huffman Tree 2

7CBI?F)B@L$&FF@$HFH2B@LC

B@BC?@2&F)$D&B8

F!7 C BI?F8 ⇔

⇔ ⇔ ⇔ 78

;

Huffman Tree 2

7CBI?F)B@L$&FF@$HFH2B@LC

B@BC?@2&F)$D&B8

F!7 C BI?F8 ⇔

⇔ ⇔ ⇔ 78

;>

Huffman Tree 2

7CBI?F)B@L$&FF@$HFH2B@LC

B@BC?@2&F)$D&B8

F!7 CBI?F8 ⇔

⇔ ⇔ ⇔ 78

<

Huffman Tree 2

7CBI?F)B@L$&FF@$HFH2B@LC

B@BC?@2&F)$D&B8

F!7 CBI?F8 ⇔

⇔ ⇔ ⇔ 78

slide-16
SLIDE 16

<

Huffman Tree 2

7CBI?F)B@L$&FF@$HFH2B@LC

B@BC?@2&F)$D&B8

F!7 CBI?F8 ⇔

⇔ ⇔ ⇔ 78

</

Huffman Tree 2

7CBI?F)B@L$&FF@$HFH2B@LC

B@BC?@2&F)$D&B8

F!7 CBI?F8 ⇔

⇔ ⇔ ⇔ 78

<6

Huffman Tree 2

7CBI?F)B@L$&FF@$HFH2B@LC

B@BC?@2&F)$D&B8

F!7 CBI?F8 ⇔

⇔ ⇔ ⇔ 78

<:

Huffman Tree 2

7CBI?F)B@L$&FF@$HFH2B@LC

B@BC?@2&F)$D&B8

F!7 CBI?F8 ⇔

⇔ ⇔ ⇔ 78

slide-17
SLIDE 17

<;

Other methods

C5"! ? M5! &!!

  • !!

I5

!!!

9'compressgz

ip(

& 'bunz

ip2(

II