Download - Data Structure (Heap Sort)
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: [email protected]: http://adfbipotter.wordpress.com
Copyright © Adam Mukharil Bachtiar 2012
GRACIASTHANK YOU