struktur data 08 (heap)

24
Copyright Sunarya D. Marwah Copyright Sunarya D. Marwah BAGIAN VII BAGIAN VII

Upload: sunarya-marwah

Post on 02-Jul-2015

263 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

BAGIAN VIIBAGIAN VII

Page 2: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

HeapHeap

Bila ada suatu urutan data di dalam array:

R[0] , R[1], R[3], R[4], . . . ,R[n]R[0] , R[1], R[3], R[4], . . . ,R[n]

sedemikian rupa sehingga:

R[i] < r[2i + 1] dan R[i] < R[2i + 2]R[i] < r[2i + 1] dan R[i] < R[2i + 2]

atau

R[i] > r[2i + 1] dan R[i] > R[2i + 2]R[i] > r[2i + 1] dan R[i] > R[2i + 2]

maka data tersebut berada dalam struktur HEAP.

Page 3: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

HeapHeap

Ada dua macam struktur Heap:Ada dua macam struktur Heap:

a.a.Min Heap : R[0] berisi data terkecilMin Heap : R[0] berisi data terkecilb.b.Max Heap: R[0] berisi data terbesarMax Heap: R[0] berisi data terbesar

Contoh:

No. R[0] R[1] R[2] R[3] R[4] R[5] R[6] Heap

1. 10 15 22 31 34 45 48 Y

2. 10 15 45 22 31 34 48 T

3. 48 31 45 22 15 34 10 Y

Page 4: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

HeapHeapTabel diatas akan lebih mudah dilihat sebagai Heap atau Tabel diatas akan lebih mudah dilihat sebagai Heap atau

bukan, bila digambarkan dalam bentuk Binary treebukan, bila digambarkan dalam bentuk Binary tree.

No. 1: Min HeapNo. 1: Min Heap 10

15

3431

22

4845

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Page 5: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

HeapHeap

10

15

3122

45

4834

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

No. 2: Bukan Heap

Page 6: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

HeapHeap

48

31

1522

45

1034

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

No. 3: Max Heap

Page 7: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

HeapHeap

10

15

3122

45

4834

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Membangun Heap

Buat batas yang melingkupi data yang telah dianggap sebagai Heap.Semua leaf dianggap telah memenuhi sarat heap.

Page 8: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

HeapHeap

10

15

3122

45

4834

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Membangun Heap

Perluas batas kearah atas.Test R[2], ternyata R[2] harus ditukar dengan R[5]

Page 9: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

HeapHeap

10

15

3122

34

4845

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Membangun Heap

Perluas batas kearah kiri.Test R[1], ternyata R[1] sudah heap

Page 10: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

HeapHeap

10

15

3122

34

4845

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Membangun Heap

Perluas batas kearah atas.Test R[0], ternyata R[0] sudah heap

Page 11: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

HeapHeap

10

15

3122

34

4845

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Membangun Heap

SelesaiSelesai

Page 12: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Heap SortHeap Sort

10

15

3122

34

4845

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Heap sort

Tukar R[0] dengan R[6]Tukar R[0] dengan R[6]

Page 13: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

48

15

3122

34

1045

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Heap sort

R[6] keluar dari heapR[6] keluar dari heap

Page 14: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

15

48

3122

34

1045

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Heap sort

Atur kembali heap, tukar R[0] dengan R[1]Atur kembali heap, tukar R[0] dengan R[1]

Page 15: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

15

22

3148

34

1045

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Heap sort

Atur kembali heap, tukar R[1] dengan R[3]Atur kembali heap, tukar R[1] dengan R[3]

Page 16: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

15

22

3148

34

1045

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Heap sort

Tukar R[0] dengan R[5]Tukar R[0] dengan R[5]

Page 17: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

45

22

3148

34

1015

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Heap sort

R[5] keluar dari heapR[5] keluar dari heap

Page 18: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

22

45

3148

34

1015

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Heap sort

Atur kembali heap, tukar R[0] dengan R[2]Atur kembali heap, tukar R[0] dengan R[2]

Page 19: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

22

31

4548

34

1015

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Heap sort

Atur kembali heap, tukar R[1] dengan R[4]Atur kembali heap, tukar R[1] dengan R[4]

Page 20: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

22

31

4548

34

1015

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Heap sort

Tukar R[0] dengan R[4]Tukar R[0] dengan R[4]

Page 21: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

45

31

2248

34

1015

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Heap sort

R[4] keluar dari heap.R[4] keluar dari heap.Demikian seterusnya hingga R[1] keluar dari heapDemikian seterusnya hingga R[1] keluar dari heap

Page 22: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

48

45

2231

34

1015

R[0]

R[1] R[2]

R[3] R[4] R[5] R[6]

Heap sort

Selesai, didapat urutan secaraSelesai, didapat urutan secara descending descending

Page 23: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

Algoritma Heap sortAlgoritma Heap sort

1.1. Membangun heap.Membangun heap.2.2. Tukar root dengan elemen terakhir heap.Tukar root dengan elemen terakhir heap.3.3. Ukuran heap berkurang satu.Ukuran heap berkurang satu.4.4. Atur kembali heap.Atur kembali heap.5.5. Ulangi langkah 2 s/d 4 hingga heapsize = 1.Ulangi langkah 2 s/d 4 hingga heapsize = 1.6.6. Selesai.Selesai.

Page 24: Struktur data 08 (heap)

Copyright Sunarya D. MarwahCopyright Sunarya D. Marwah

Sorting; Heap SortSorting; Heap Sort

Latihan.Latihan.

1.1. Lakukan heapsort untuk data:Lakukan heapsort untuk data:75 23 16 46 32 58 80 61 97 4975 23 16 46 32 58 80 61 97 49secara secara ascendingascending..

2. Lakukan heapsort untuk data:2. Lakukan heapsort untuk data:16 23 32 46 49 58 61 75 83 85 91 9416 23 32 46 49 58 61 75 83 85 91 94secara secara descendingdescending..