Bekti - Rita - Sevenhot

28
Struktur Data & Algoritma 2009 Bekti - Rita - Sevenhot z

description

z. Struktur Data & Algoritma 2009. Bekti - Rita - Sevenhot. DEFINISI. DEFINISI. HEAP Sebuah complete binary tree dengan ketentuan sebagai berikut : Perbandingan suatu node dengan suatu nilai node child-nya mempunyai ketentuan tertentu berdasarkan jenis heap-nya Jenis heap - PowerPoint PPT Presentation

Transcript of Bekti - Rita - Sevenhot

Page 1: Bekti - Rita - Sevenhot

S t r u k t u r D a t a & A l g o r i t m a 2 0 0 9Bekti - R i ta - Sevenhot

z

Page 2: Bekti - Rita - Sevenhot

SDA - 2009

DEFINISI

Bekti.Rita.Sevenhot

DEFINISIHEAP Sebuah complete binary tree dengan ketentuan sebagai berikut :» Perbandingan suatu node dengan suatu nilai node child-nya mempunyai ketentuan

tertentu berdasarkan jenis heap-nya

» Jenis heap MAXHEAP (elemen maksimum di root) :

A[parent(i)] ≥ A[i]nilai node lebih besar atau sama dengan nilai childnya

MINHEAP (elemen minimum di root) :A[parent(i)] ≤ A[i]nilai node lebih kecil atau sama dengan nilai childnya

Page 3: Bekti - Rita - Sevenhot

SDA - 2009Bekti.Rita.Sevenhot

CONTOH HEAP

MAXHEAP MINHEAP

12

10 7

6 2 4 7

2

4 7

12 4 8 10

nilai node ≥ nilai childnya nilai node ≤ nilai childnya

Page 4: Bekti - Rita - Sevenhot

SDA - 2009Bekti.Rita.Sevenhot

» Heap adalah suatu priority queue (mempertahankan antrian prioritas).

» Dalam antrian prioritas, elemen yang dihapus adalah elemen yang mempunyai prioritas terbesar (atau terkecil, tergantung keperluan), dan elemen inilah yang selalu terletak di akar (root).

» Suatu heap sewaktu-waktu dapat berubah, baik itu dikarenakan penambahan elemen (insert) ataupun penghapusan elemen (delete).

» Struktur data heap biasanya diimplementasikan dalam array

Page 5: Bekti - Rita - Sevenhot

SDA - 2009

INDEXING

Bekti.Rita.Sevenhot

INDEXING

parent(i) = i/2

left_child(i) = 2·i

right_child(i) = 2·i + 1

1

2 3

4 5 6 7

Page 6: Bekti - Rita - Sevenhot

SDA - 2009

OPERASI HEAP

Bekti.Rita.Sevenhot

OPERASI HEAPINSERTMemasukkan data baru ke dalam heap tree

Contoh :insert 9

Karena 9 < 10, maka 10 tidak terjadi switchProses insert berhenti

10

7 7

1 3 2 4

9

exchange9 > 1

10

7 7

9 3 2 4

1

exchange9 > 7

10

9 7

7 3 2 4

1

Page 7: Bekti - Rita - Sevenhot

SDA - 2009

OPERASI HEAP

Bekti.Rita.Sevenhot

OPERASI HEAPROOT DELETIONMenghapus root pada heap tree

Contoh : delete root

12

7 10

1 3 4 2

2

7 10

1 3 4

Elemen dengan indeksterbesar naik menjadi root

HEAPIFY

Page 8: Bekti - Rita - Sevenhot

SDA - 2009

HEAPIFY

Bekti.Rita.Sevenhot

HEAPiFYDefinisi Proses mengubah binary tree menjadi heap tree

AlgoritmaHeapify(A,i) l ← left [i] r ← right [i] if l ≤ heap-size [A] and A[l] > A[i] then largest ← l else largest ← i if r ≤ heap-size [A] and A[r] > A[largest] then largest ← r if largest ≠ i then exchange A[i] ↔ A[largest] Heapify (A, largest)

Page 9: Bekti - Rita - Sevenhot

SDA - 2009

HEAPIFY

Bekti.Rita.Sevenhot

HEAPiFYContoh

2

7 10

1 3 4

7 > 210 > 7

10

7 2

1 3 7

7 > 2

10

7 7

1 3 2

Page 10: Bekti - Rita - Sevenhot

SDA - 2009

HEAP SORT

Bekti.Rita.Sevenhot

HEAP SORTHEAP SORT ALGORITHM

» adalah algoritma sorting yang berdasarkan pada struktur data heap tree» Kompleksitas running time-nye : O(nlog(n))

Langkah : 1. Susun array A kedalam heap tree2. Ambil root pada heap tree, masukkan ke array3. Hapus elemen root (dengan mempertahankan sifat heap, lakukan

heapify jika tidak memenuhi sifat heap)4. Lakukan terus (langkah 2-3) hingga tree menjadi kosong

Page 11: Bekti - Rita - Sevenhot

SDA - 2009

HEAP SORT ALGORITHM

Bekti.Rita.Sevenhot

ALGORITHMHEAPSORT (A) BuildHeap (A) for i ← length (A) down to 2 do exchange A[1] ↔ A[i] heap-size [A] ← heap-size [A] - 1 Heapify (A, 1)

Page 12: Bekti - Rita - Sevenhot

SDA - 2009Bekti.Rita.Sevenhot

BuildHeap(A) heap-size (A) ← length [A] for i ← floor(length[A]/2) down to 1 do Heapify (A, i)

Heapify(A,i) l ← left [i] r ← right [i] if l ≤ heap-size [A] and A[l] > A[i] then largest ← l else largest ← i if r ≤ heap-size [A] and A[r] > A[largest] then largest ← r if largest ≠ i then exchange A[i] ↔ A[largest] Heapify (A, largest)

Page 13: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASIArray A = [1, 4, 89, 77, 12, 50, 23]

BuildHeap(A)

Page 14: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASIArray A = [1, 4, 89, 77, 12, 50, 23]

BuildHeap(A)

insert 1

1

1 4 89 77 12 50 23

Page 15: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASIArray A = [1, 4, 89, 77, 12, 50, 23]

BuildHeap(A)

insert 1

1

insert 4

1

4

4

1

4 1 89 77 12 50 23

Page 16: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASIArray A = [1, 4, 89, 77, 12, 50, 23]

BuildHeap(A)

insert 1

1

insert 4

1

4

4

1

insert 89

4

1 89

89

1 4

89 1 4 77 12 50 23

Page 17: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASI

insert 77

89

1 4

89

77 4

77 1

89 77 4 1 12 50 23

BuildHeap(A)

Page 18: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASI

insert 77

89

1 4

89

77 4

77 1

insert 12

89

77 4

1 12

89 77 4 1 12 50 23

BuildHeap(A)

Page 19: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASI

insert 77

89

1 4

89

77 4

77 1

insert 12

89

77 4

1 12

insert 50

89

77 4

1 12 50

89

77 50

1 12 4

89 77 50 1 12 4 23

BuildHeap(A)

Page 20: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASI

insert 23

89

77 50

1 12 4

89 77 50 1 12 4 23

BuildHeap(A)

23

Page 21: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASI

89

77 50

1 12 4

77 23 40 1 12 4 89

23

Delete root

23

77 50

1 12 4

77

23 50

1 12 4

Heapify

sorted

Page 22: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASI

55 23 4 1 12 77 89

Delete root

77

23 50

1 12 4

Heapify

sorted

4

23 50

1 12

50

23 4

1 12

Page 23: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASI

23 12 4 1 55 77 89

Delete root Heapify

sorted

50

23 4

1 12

12

23 4

1

23

12 4

1

Page 24: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASI

12 1 4 23 55 77 89

Delete root Heapify

sorted

23

12 4

1

1

12 4

12

1 4

Page 25: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASI

4 1 12 23 55 77 89

Delete root

sorted

12

1 4

4

1

Page 26: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASI

1 4 12 23 55 77 89

Delete root

sorted

1

Delete root12

1 4

4

1

Page 27: Bekti - Rita - Sevenhot

SDA - 2009

SIMULASI HEAP SORT

Bekti.Rita.Sevenhot

SIMULASI

1 4 12 23 55 77 89

sorted

Delete rootDelete root1

Delete root12

1 4

4

1

Page 28: Bekti - Rita - Sevenhot

Selesai & Terima kasih

Bekti.Rita.Sevenhot SDA - 2009