Data Structure (Heap Sort)

Preview:

Citation preview

Heap Sort

Adam M.B.

DEFINITION

Heap

HeapTree

Complete Binary Tree

(CBT) Max HeapValue of node >= value of

its child

Min HeapValue of node <= value of

its child

Example of HeapMax Heap Min Heap

24

19

13

15

11 5 8

4

4

5

13

8

11 19 15

24

k

2k 2k+1

2k+1 2k+12k

2k

2k

BASIC PROCESSES

• Making of heap

• Heap sort

Processes in Heap

Making of Heap

• Shift down from middle node (Sum of node/2) until first node

1 2 3 4

14 11 575 6

3 2

1

2 3

54 6• N = 6, Middle = N/2 = 6/2

= 3• Reorganize on third node• Reorganize on second node• Reorganize on first node

1 2 3 4

14 11 5 75 6

3 2

7

3

14

11

2

53

14

2

57

14

11

7

Heap Sort 1

a.Binary tree in Max heap state.

b.“Fired” root and swap with last node.

c. Subtract number of nodes with 1.

d.If N > 1 then reorganize heap again.

e.Repeat step b to d until node is empty (N=0)

1

2 3

54 6

1 2 3 4

14 11 5 75 6

3 2142 14

3 2

5

14

11

7

2

Heap Sort 1

a.Binary tree in Max heap state.

b.“Fired” root and swap with last node.

c.Subtract number of nodes with 1.

d.If N > 1 then reorganize heap again.

e.Repeat step b to d until node is empty (N=0)

1

2 3

54 6

1 2 3 4

14 11 5 75 6

3 2142 14

3 2

5

14

11

7

2

Heap Sort 2

Reorganize heapMiddle = N/2 = 5/2 = 2

b.“Fired” root and swap with last node.

c. Subtract number of nodes with 1.

d.If N > 1 then reorganize heap again.

e.Repeat step b to d until node is empty (N=0)

Reorganize heap on second node.Reorganize heap on first node.

1

2 3

54

3

511

7

2

1 2 3 4

11 5 75 6

3 2142 14

11

27

2

2

11 27 2112 11

Heap Sort 3

Reorganize heapMiddle = N/2 = 4/2 = 2

b.“Fired” root and swap with last node.

c. Subtract number of nodes with 1.

d.If N > 1 then reorganize heap again.

e.Repeat step b to d until node is empty (N=0)

Reorganize heap on second node.Reorganize heap on first node.

1

2 3

4

3

5

2

7

1 2 3 4

5 75 6

3 214147 2112 11

2

7

7 2

3

2

3 2

2

72 7

Heap Sort 4

Reorganize heapMiddle = N/2 = 3/2 = 1

b.“Fired” root and swap with last node.

c. Subtract number of nodes with 1.

d.If N > 1 then reorganize heap again.

e.Repeat step b to d until node is empty (N=0)

Reorganize heap on first node.

1

2 3

5

2

3

1 2 3 4

5 75 6

3 21414211113 272 7

5

2

5 2

2

52 5

Heap Sort 5

Reorganize heapMiddle = N/2 = 2/2 = 1

b.“Fired” root and swap with last node.

c. Subtract number of nodes with 1.

d.If N > 1 then reorganize heap again.

e.Repeat step b to d until node is empty (N=0)

Reorganize heap on first node.

1

22

3

1 2 3 4

5 75 6

3 21414211113 277252 5

2

3

3 2

2

32 3

Heap Sort 6

Because N = 1 then reorganize isn’t happen.b.“Fired” rootc. Subtract number of nodes with

1.

Because N = 0 then sorting processes is finish.

1

2

1 2 3 4

5 75 6

3 21414211113 277252 52332

m

CASE

Node have 2

Case ExampleSort these name using heap sort

method in descending way.Num. Name1 Rahmat2 Didin3 Ahmad4 Joned5 Syahrul6 Riki7 Arif8 Susi9 Donni10 Asih

Node have 2

Making of CBTRahmat

AhmadDidin

Joned Syahrul Riki Arif

Susi Donni Asih

Not Heap

Complete Binary Tree

Rahmat

Didin Ahmad Joned Syahrul

Riki Arif Susi Donni Asih

1 2 3 4 5 6 7 8 9 10

Node have 2

Heap Sort 1

1 2 3 4 5 6 7 8 9 10

Rahmat

AhmadDidin

Joned Syahrul Riki Arif

Susi Donni Asih

Heap

Syahrul

Asih

Joned

Donni Didin

Asih Rahmat

Ahmad

Arif

Rahmat

Ahmad Asih Arif Donni Didin Riki Rahmat

Susi Joned Syahrul

Node have 2

Heap Sort 2

Riki

Susi

Not HeapSyahrulJoned

Donni Didin

Asih

Ahmad

Arif

Rahmat

Syahrul

1 2 3 4 5 6 7 8 9 10

Ahmad Asih Arif Donni Didin Riki Rahmat

Susi Joned Syahrul

AhmadSyahrul

Ahmad

Node have 2

Heap Sort 3

Riki

SusiHeap

Joned

Donni Didin

Asih Arif

Rahmat

SyahrulArif

SyahrulRahmat

Syahrul

1 2 3 4 5 6 7 8 9 10

Asih Arif Donni Didin Riki Rahmat

Susi Joned Syahrul

AhmadSyahrul

AhmadArif Syahrul

Rahmat

Syahrul

Node have 2

Heap Sort 4

Riki

SusiNot Heap

Joned

Donni Didin

Asih

Arif

Rahmat

Syahrul

Joned

1 2 3 4 5 6 7 8 9 10

Asih Donni Didin Riki Susi Joned Syahrul

AhmadAhmadArif Rahmat

Syahrul

Joned ArifArif

Node have 2

Heap Sort 5

Riki

SusiHeap

Donni Didin

Asih Rahmat

Syahrul

JonedAsih

JonedDidin

Joned

1 2 3 4 5 6 7 8 9 10

Asih Donni Didin Riki Susi Joned Syahrul

AhmadAhmadRahmat

Syahrul

Joned ArifArifJonedAsih Didin Joned

Node have 2

Heap Sort 6

Riki

Susi Not Heap

Donni

Rahmat

Syahrul

Asih

Didin

Joned

Susi

1 2 3 4 5 6 7 8 9 10

Donni Riki Susi Joned Syahrul

AhmadAhmadRahmat

Syahrul

ArifArifAsih Didin JonedSusi AsihAsih

Node have 2

Heap Sort 7

Riki

Heap

Donni

Rahmat

Syahrul

Didin

Joned

SusiDidin

SusiDonni

Susi

1 2 3 4 5 6 7 8 9 10

Donni Riki Susi Joned Syahrul

AhmadAhmadRahmat

Syahrul

ArifArifDidin JonedSusi AsihAsihDidin SusiDonni Susi

Node have 2

Heap Sort 8

Riki

Not Heap

Rahmat

SyahrulJoned

Didin

Donni

Susi

Syahrul

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadRahmat

Syahrul

ArifArifJoned AsihAsihDidin Donni SusiSyahrul

DidinDidin

Node have 2

Heap Sort 9

Riki

Heap

Rahmat

Joned

Donni

Susi

SyahrulDonni

SyahrulJoned

Syahrul

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadRahmat

Syahrul

ArifArifJoned AsihAsihDonni SusiSyahrul

DidinDidinDonni Syahrul

Joned Syahrul

Node have 2

Heap Sort 10

Riki

Not Heap

Rahmat

Susi

Donni

Joned

Syahrul

Riki

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadRahmat

Syahrul

ArifArifAsihAsihSusi DidinDidinDonni Joned Syahrul

Riki DonniDonni

Node have 2

Heap Sort 11

Heap

Rahmat

Susi

Joned

Syahrul

RikiJoned

Riki

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadRahmat

Syahrul

ArifArifAsihAsihSusi DidinDidinJoned Syahrul

Riki DonniDonniJoned Riki

Node have 2

Heap Sort 12

Not Heap

Rahmat

Susi Syahrul

Joned

Riki

Syahrul

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadRahmat

Syahrul

ArifArifAsihAsihSusi DidinDidinSyahrul

DonniDonniJoned RikiSyahrul

JonedJoned

Node have 2

Heap Sort 13

Heap

Rahmat

Susi

Riki

SyahrulRahmat

Syahrul

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadRahmat

Syahrul

ArifArifAsihAsihSusi DidinDidinSyahrul

DonniDonniSyahrul

JonedRiki DonniRahmat

Syahrul

Node have 2

Heap Sort 14

Not Heap

Susi

Riki

Rahmat

Syahrul

Susi

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadSyahrul

ArifArifAsihAsihSusi DidinDidinSyahrul

DonniDonniJonedRiki DonniRahmat

Syahrul

Susi Rahmat

Rahmat

Node have 2

Heap Sort 15

Heap

Riki Syahrul

SusiRiki

Susi

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadSyahrul

ArifArifAsihAsihSusi DidinDidinSyahrul

DonniDonniJonedRiki DonniSyahrul

Susi Rahmat

RahmatRiki Susi

Node have 2

Heap Sort 17

Heap

Susi

Syahrul

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadSyahrul

ArifArifAsihAsihSusi DidinDidinSyahrul

DonniDonniJonedDonniSyahrul

Rahmat

RahmatSyahrul

Susi Riki

Susi

Syahrul

Susi Syahrul

Node have 2

Heap Sort 16

Not Heap

Syahrul

Riki

Susi

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadSyahrul

ArifArifAsihAsihSusi DidinDidinSyahrul

DonniDonniJonedDonniSyahrul

Rahmat

RahmatRiki Susi Riki

Syahrul

Syahrul

Riki

Node have 2

Heap Sort 18

Heap

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadSyahrul

ArifArifAsihAsihSusi DidinDidinSyahrul

DonniDonniJonedDonniSyahrul

Rahmat

RahmatRiki

Susi

Syahrul

Susi Syahrul

Syahrul

SusiSyahrul

Susi

Node have 2

Heap Sort 19

Syahrul

1 2 3 4 5 6 7 8 9 10

Riki Susi Joned Syahrul

AhmadAhmadSyahrul

ArifArifAsihAsihSusi DidinDidinSyahrul

DonniDonniJonedDonniSyahrul

Rahmat

RahmatRikiSyahrul

SusiSyahrul

SusiSyahrul

Contact Person:Adam Mukharil Bachtiar

Informatics Engineering UNIKOMJalan Dipati Ukur Nomor. 112-114 Bandung 40132

Email: adfbipotter@gmail.comBlog: http://adfbipotter.wordpress.com

Copyright © Adam Mukharil Bachtiar 2012

GRACIASTHANK YOU

Recommended