Tugas Struktur Data II-pengurutan

35
BAB I PENGURUTAN Tujuan utama pengerutan: Menunjukkan sejumlah contoh yang mengilustrasikan struktur data dan untuk menunjukkan bagaimana pemilihan struktur data mempengaruhi algoritma untuk menyelesaikan atau malakukan tugasnya. Pengurutan juga menunjukkan contoh yang bagus untuk menunjukkan bahwa suatu persoalan dapat diselesaikan dengan sejumlah algoritma yang berbeda-beda,masing-masing mempunyai keuntungan dan kerugian yang harus diperhitungkan untuk suatu aplikasi tertentu.pengurutan diartikan sebagai proses pengurutan kembali sekumpulan objek kedalam suatu pengurutan tertentu. Tujuan pengurutan adalah Untuk mendapatkan kemudahan dalam mencari anggota dalam suatu himpunan Untuk mempermudah menentukan data maksimal atau data minimum Secara umum ada 2 jenis pengurutan data: 1 Pengurutan secara urut naik Pengurutan dari data yang nilainya paling kecil sampai data yang paling besar.bila N objek disimpan dalam

description

tugas kuliah

Transcript of Tugas Struktur Data II-pengurutan

Page 1: Tugas Struktur Data II-pengurutan

BAB I

PENGURUTAN

Tujuan utama pengerutan:

Menunjukkan sejumlah contoh yang mengilustrasikan struktur data dan untuk

menunjukkan bagaimana pemilihan struktur data mempengaruhi algoritma untuk

menyelesaikan atau malakukan tugasnya.

Pengurutan juga menunjukkan contoh yang bagus untuk menunjukkan bahwa suatu

persoalan dapat diselesaikan dengan sejumlah algoritma yang berbeda-beda,masing-masing

mempunyai keuntungan dan kerugian yang harus diperhitungkan untuk suatu aplikasi

tertentu.pengurutan diartikan sebagai proses pengurutan kembali sekumpulan objek kedalam

suatu pengurutan tertentu.

Tujuan pengurutan adalah

Untuk mendapatkan kemudahan dalam mencari anggota dalam suatu himpunan

Untuk mempermudah menentukan data maksimal atau data minimum

Secara umum ada 2 jenis pengurutan data:

1 Pengurutan secara urut naik

Pengurutan dari data yang nilainya paling kecil sampai data yang paling besar.bila N

objek disimpan dalam larik(L),maka pengurutan manaik berarti menyusun elemen larik

sedemikian sehingga L[1]<L[2]<L[3]<…….< L[N]

2 Pengurutan secara urut turun

Pengurutan dari data yang nilainya paling besar sampai data yang paling kecil

sehingga elemen lariknya L[1]>L[2]>L[3]>……..>L[N]

Data yang diurut dapat berupa data yang bertipe numeric dasar/tipe

bentuk(record).jika data bertipe bentuk record/rekaman ,maka harus dijelaskan berdasarkan

field apa data itu diurut.

Contoh:

Page 2: Tugas Struktur Data II-pengurutan

Data integer terurut menaik

23,27,45,67

Data real terurut menurun

25,12,20,19,-12,-20

Data string terurut menaik

Agus ,Budi,Cinta,Dodi

Data mahasiswa terurut menaik berdasarkan nim

(091011201,Rida,A++),(091011208,Taufik,A++),(091011212,Nora,A++)

Pengurutan biasanya digunakan untuk:

Membantu proses pencarian(searching)

Menyelesaikan masalah-masalah komplek seperti penjadwalan(schedule),pengelolaan

basis data,reset operasi dsb.

Pengurutan terbagi atas 2 kelompok:

1. Pengurutan internal

Pengurutan terhadap sekumpulan data yang disimpan dalam memori utama

computer.umumnya struktur data yang dipakai adalah larik/Array,sehingga pengurutan

internal disebut juga pengurutan Larik/Array.

2. Pengurutan eksternal

Pengurutan data yang disimpan dalam memori sekunder,biasanya data bervolume

besar sehingga tidak mampu dimuat semuanya dalam memori computer,yang disebut juga

dengan pengurutan Arsip/File.karena struktur eksternal yang dipakai adalah arsip.

Macam-macam metode pengurutan:

I. Pengurutan dengan penyisipan langsung(straightinsertion)

Metode penyisipan langsung banyak digunakan oleh pemain kartu,dalam metode ini

elemen kartu dibagi menjadi 2 kelompok:

Page 3: Tugas Struktur Data II-pengurutan

Kelompok pertama(1),disebut kelompok tujuan(kartu yang ada ditangan pemain sudah

terurut)dengan urutan Ai,…..Ai-1

Kelompok kedua(2),disebut kelompok sumber(kartu yang ada diatas meja yang masih belum

terurut)dengan urutan Ai…..An.(Pada setiap langkah dimulai dengan i=2 dan setiap kali

nilainya +1,elemen ke-i diambil dari kolompok sumber akan dipindahkan kekelompok tujuan

dengan menyisipkan pada tempat yang sesuai.

II. Pengurutan sisip(insertion sort)

Metode pengurutan dengan cara menyisipkan elemen larik pada posisi yang

tepat.Pencarian posisi yang tepat dilakukan dengan cara melakukan pencarian beruntun

dalam larik.Selama pencarian posisi yang tepat dilakukan penggeseran elemen larik.Insertion

sort dilakukan dengan mencari tempat yang tepat kemudian disisipkan.Insertion sort tidak

dipergunakan untuk jumlah data yang besar.

Contoh:

Data yang akan diurutkan : 23,45,12,24,56

iterasi A[0] A[1] A[2] A[3] A[4] A[5]

I=1 0 23 45 12 24 56

I=2 45 23 45 12 24 56

I=3 12 12 23 45 24 56

I=4 24 12 23 24 45 56

I=5 56 12 23 24 45 56

Data yang akan diurutkan: 7,5,3,6

iterasi A[0] A[1] A[2] A[3] A[4]

I=1 0 7 5 3 6

I=2 7 5 7 3 6

I=3 3 3 5 7 6

I=4 6 3 5 6 7

Langkah –langkah pengurutan dengan pengisipan langsung(straightinsertion):

Asumsi : L[0] dianggap sudah ditempat

Page 4: Tugas Struktur Data II-pengurutan

Langkah 1

L[1] harus dicari tempatnya yang tepat pada L[0….1] dengan cara menggeser elemen L[0] ke

kanan bila L[0…0] lebih dari L[1].

Langkah 2

L[2] harus dicari tempatnya yang tepat pada L[0…..2] dengan cara menggeser elemen L[0…

1] ke kanan bila L[0….1] lebih besar dari L[2].

Langkah 3

L[3] harus dicari tempatnya yang tepat pada L[0…3]dengan cara menggeser elemen L[0…2]

ke kanan bila L[0…2] lebih besar dari L[3].

Dan seterusnya

Langkah N-1

L[N-1] harus dicari tempatnya yan tepat pada L[0….N-1] dengan cara menggeser elemen

L[0….N-2] ke kanan bila L[0….N-2] lebih besar dari L[N-1]

Misalnya posisi yang dipindahkan adalah K maka sisipkan L[N-1] pada L[K]

Contoh:

Tinjau larik dengan n=6 elemen dibawah ini belum terurut.Larik ini akan diurut secara menaik

29 27 10 8 76 21

Iterasi ke-0;elemen L[0] dianggap sudah terurut

29 27 10 8 76 21

Iterasi ke-1;cari posisi yang tepat untuk L[1] pada L[0…1]

27 29 10 8 76 21

iterasi ke-2 ; cari posisi yang tepat untuk L[2] pada L[0…2]

10 27 29 8 76 21

Iterasi ke-3 ; cari posisi yang tepat untuk L[3] pada L[0…3]

8 10 27 29 76 21

Iterasi ke-4 ; cari posisi yang tepat untuk L[4] pada L[0….4]

Page 5: Tugas Struktur Data II-pengurutan

8 10 27 29 76 21

Iterasi ke-5 ; cari posisi yang tepat untuk L[5] pada L[0….5]

8 10 21 27 29 76

III. Metode seleksi(selection sort)

Algoritma selection sort termasuk algoritma sorting internal.Semua data yang akan

diurutkan harus berada dalam memori computer(biasanya dalam bentuk struktur data Array

of structure).Pada setiap putarannya diseleksi bilangan terkecil lalu ditempatkan pada posisi

yang semestinya,dibandingkan dengan algoritma bubble sort,frekuensi pertukaran data

selection sort lebih sedikat.

Cara kerja metode seleksi didasarkan pada pencarian elemen dengan nilai

terkecil,kemudian dilakukan penukaran ke elemen ke-1.Secara singkat metode ini bisa

dijelaskan sebagai berikut:

a. Pada langkah pertama dicari data terkecil dari data pertama sampai data

terakhir,kemudian data terkecil tersebut ditukarkan dengan data pertama.Dengan

demikian,data pertama sekarang mempunyai nilai paling kecil dibandingkan data

yang lain.

b. Pada langkah kedua data terkecil kita cari mulai dari data kedua sampai data

terakhir.Data terkecil yang kita peroleh ditukar dengan data kedua,demikian

seterusnya sampai seluruh vector dalam keadaan terurut.

Untuk lebih memperjelas proses pengurutan dengan metode seleksi berikut ini:

Iterasi ke A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9]

I=1,lok=3 23 45 12 24 56 34 27 23 16

I=2,lok=9 12 45 23 24 56 34 27 23 16

I=3,lok=3 12 16 23 24 56 34 27 23 45

I=4,lok=8 12 16 23 24 56 34 27 23 45

I=5,lok=8 12 16 23 23 56 34 27 24 45

I=6,lok=7 12 16 23 23 24 34 27 56 45

I=7,lok=7 12 16 23 23 24 27 34 56 45

I=8,lok=9 12 16 23 23 24 27 34 56 45

Page 6: Tugas Struktur Data II-pengurutan

akhir 12 16 23 23 24 27 34 45 56

glangsung,dalam setiap langkah pada metode penyisipan langsung kita hanya memperhatikan

satu elemen dari sumber dan semua elemen dari larik tujuan untuk menentukan posisinya

yang tepat,sehingga sering disebut one source multiple destinations.Dalam metode seleksi

terjadi sebaliknya yakni kita memperhatikan semua elemen dalam larik sumber untuk

menentukan elemen terkecil yang akan kita tempatkan pada tujuan,sehingga sering disebut

multiple source one destination.

Kelebihan dan kekurangan selection sort:

Kompleksitas selection sort relative lebih kecil

Mudah menggabungkan kembali,tetapi sulit membagi masalah

Membutuhkan metode tambahan

Contoh lain selection sort : 60,70,30,50,40,20

Iterasi ke A[1] A[2] A[3] A[4] A[5] A[6]

I=1,lok=6 60 70 30 50 40 20

I=2,lok=3 20 70 30 50 40 60

I=3,lok=5 20 30 70 50 40 60

I=4,lok=4 20 30 40 50 70 60

I=5,lok=6 20 30 40 50 70 60

akhir 20 30 40 50 60 70

IV. Bubble sort

Bubble sort sering dikenal dengan metode gelembung adalah metode yang dilakukan dengan

cara penukaran dua buah elemen yang letaknya berdekatan dengan cara ditukarkan untuk

mencapai keadaan urut yang diinginkan.

o Dengan selection sort,kita membuat satu penukaran pada setiap iterasi

o Bubble sort meningkatkan kinerja pengurutan dengan membuat lebih dari satu

penukaran setiap iterasi.

Page 7: Tugas Struktur Data II-pengurutan

o Ide dasar dibalik bubble sort adalah membuat sepasang perbandingan dan

menukarkan posisi dari pasangan data tersebut jika mereka belum terurut

o Bubble sort mudah dipahami tapi tidak efisien karena setiap looping selalu ada

penukaran

o Bubble sort sudah tidak dipergunakan lagi

Contoh bubble sort:

1) Urutkan : 35,17,32,61,2,37

Langkah 1 : 35 17 32 61 2 37

Swap

Langkah 2 : 17 35 32 61 2 37

Swap

Langkah 3 : 17 32 35 61 2 37

OK

Langkah 4 : 17 32 35 61 2 37

Swap

Langkah 5 : 17 32 35 2 61 37

Swap

Iterasi 1 : 17 32 35 2 37 61

Lanjutkan iterasi

Iterasi 1 : 17 32 35 2 37 61

OK OK Swap

Iterasi 2 : 17 32 2 35 37 61

OK Swap

Iterasi 3 : 17 2 32 35 37 61

Page 8: Tugas Struktur Data II-pengurutan

Swap

Iterasi 4 : 2 17 32 35 37 61

OK

Iterasi 5 : 2 17 32 35 37 61

2) Urutkan : 29,27,10,8,76

Langkah 1 : 29 27 10 8 76

Swap

Langkah 2 : 27 29 10 8 76

Swap

Langkah 3 : 27 10 29 8 76

Swap

Langkah 4 : 27 10 8 29 76

OK

Iterasi 1 : 27 10 8 29 76

Lanjutkan iterasi

Iterasi 1 : 27 10 8 29 76

Swap

Iterasi 2 : 10 27 8 29 76

Swap

Iterasi 3 : 10 8 27 29 76

Swap

Page 9: Tugas Struktur Data II-pengurutan

Iterasi 4 : 8 10 27 29 76

V. Metode Quick Sort

Algoritma yang menggunakan metode devide dan qonquen yaitu dengan mempartisi

tabel dengan acuan elemen tabel yang dijadikan sebagai pusat.

Algoritma guik sort:

Devide,jika S memiliki dua elemen,pilih salah satu elemen x dan S yang kita buat

sebagai pivot,biasanya yang dipilih sebagai pivot adalah elemen terakhir dalam

S.Pindahkan smua elemen dalam S kedalam tiga larik berikut:

1. L adalah menyimpan semua elemen dalam S yang kecil dari x (>x)

2. E adalah menyimpan semua elemen dalam S yang sama dengan x (=x)

3. G adalah menyimpan semua elemen dalam S yang besar dari x (>x)

Recur,secara recur sif urutkan larik L dan G

Qonquer,kembalikan elemen-elemen kedalam S secara terurut dengan terlebih dahulu

menyisipkan elemen-elemen L,kemudian E dan diikuti dengan G.

Contoh :

Terdapat larik : 85 24 63 45 17 31 96 50

Terlalu sulit mengurutkan data tersebut dalam satu langkah

Pilih 50 sebagai pivot

Bagi tiga elemen :

L= <x 24 45 17 31

E= =x 50

G= >x 85 63 96

Larik = 24 45 17 31

Page 10: Tugas Struktur Data II-pengurutan

Pivot = 31

L=24 17

E=31

G=45

Larik=24 17

Pivot=17

L=-

E=17 L E G

G=24 - 17 24

Maka larik= L E G L

17 24 31 45 Qonquer

1

Larik=85 63 96

Pivot=96

L=86 63

E=9

G=-

Larik=85 63

Pivot=63

L=-

E=63 L E G

G=85 - 63 85

Page 11: Tugas Struktur Data II-pengurutan

Maka larik= L E G G

63 85 96 - Qonquer 2

Maka Qonquer= L E G

17 24 31 45 50 63 85 96

BAB II

Page 12: Tugas Struktur Data II-pengurutan

HEAP

Heap adalah sebuah binary tree dengan ketentuan sebagai berikut:

Tree harus complete binary tree

o Semua level tree mempunyai simpul maksimum kecuali pada level akhir

o Pada level terakhir,node tersusun dari kiri ke kana tampa ada yang dilewati

Perbandingan nilai suatu node dengan nilai node child-nya mempunyai ketentuan

berdasarkan jenis heap,diantaranya:

o Max Heap mempunyai ketentuan bahwa nilai suatu node lebih besar atau sama

dengan(>=)dari nilai child-nya.

o Min Heap mempunyai ketentuan bahwa nilai suatu node lebih kecil atau sama

dengan(<=)dari nilai child-nya

Contoh:

Contoh penggunaan heap adalah pada persoalan yang mempertahankan antrian

prioritas(priority queu).Dalam antrian prioritas,elemen yang dihapus adalah elemen yang

Page 13: Tugas Struktur Data II-pengurutan

mempunyai prioritas terbesar(atau terkecil,tergantung keperluan),dan elemen inilah yang

selalu terletak di akar(root).Suatu heap dapat sewaktu-waktu berubah baik itu penambahan

elemen(insert)dan penghapusan elemen(delete).

Ada beberapa operasi yang dapat terjadi di sebuah heap,yaitu;

1. Reorganisasi Heap(mengatur ulang heap)

2. Membentuk Heap(mengatur binary tree agar menjadi heap)

3. Penyisipan Heap(menyisipan node baru)

4. Penghapusan Heap(menghapus node root)

5. Pengurutan Heap(Heap Sort)

Reorganisasi Heap

Algoritma heap semuanya bekerja dengan prinsip bahwa modifikasi nilai prioritas

pada suatu simpul dengan melanggar kondisi heap.Bila kondisi heap dilanggar,maka heap

harus diorganisasi kembali.

Sebagai contoh kita gunakan pada heap maksimum.Ketika nilapi/prioritas suatu node

merubah,maka ada dua kemungkinan yang terjadi:

Nilai prioritas node bertambah sehingga nilai prioritasnya lebih besar dari

parentnya,maka lakukan langkah sbb:

Tukarkan nilai prioritas node tersebut dengan nilai prioritas parentnya

Ulangi langkah diatas,sampai ditemukan posisi yang tepat

Proses ini disebut dengan proses sift-up.

Contoh node dengan prioritas 5 menjadi 10

Kondisi awal

Page 14: Tugas Struktur Data II-pengurutan

Node dengan prioritas 5 menjadi 10

Karena prioritas node lebih besar dari pada prioritas parent,maka tukarkan posisinya.

Karena prioritas node lebih besar dari pada prioritas parent,maka tukarkan posisinya.

Karena prioritas node lebih besar dari pada prioritas parent,maka tukarkan posisinya.

Nilai prioritas node berkurang sehingga menjadi lebih kecil dari prioritas diantara

node childnya,makayang harus dilakukan adalah:

Page 15: Tugas Struktur Data II-pengurutan

Tukarkan nilai prioritas simpul yang berubah dengan nilai prioritas

dari child yang mempunyai prioritas terbesar

Ulangi langkah di atas sampai ditemukan posisi yang tepat.

Proses ini disebut dengan sift-down.

Contoh:Node dengan prioritas 9 menjadi 5

Kondisi awal

Prioritas node lebih kecil dari salah satu child,ssehinnga tukarkan

Prioritas node lebih kecil dari salah satu child,ssehinnga tukarkan

Prioritas node lebih kecil dari salah satu child,ssehinnga tukarkan

Page 16: Tugas Struktur Data II-pengurutan

Pembentukan HeapPada mulanya jika suatu complete binary tree memiliki prioritas antrian secara acak,maka langkah yang harus dilakukan agar binary tree dapat dissebut sebagai heap adalah dengan melakukan proses sigt-down dari node bernomor tengah (banyak node/2 atau N/2),menurun sampai pertama.Kndisi awal

Representasi array:

5 7 1 3 2 6 8 4 9 1 2 3 4 5 6 7 8 9

N=9 , tengah=N/2=9/2=4

Lakukan reorganisasi heap pada node 4 sampai 1

Reorganisasi pada node 4 sehingga tree menjadi

Representasi array:

Page 17: Tugas Struktur Data II-pengurutan

5 7 1 9 2 6 8 4 3 1 2 3 4 5 6 7 8 9

Reorganisasi pada node 3 sehingga tree menjadi

Representasi array:

5 7 8 9 2 6 1 4 3 1 2 3 4 5 6 7 8 9

Reorganisasi pada node 2 sehingga tree menjadi

Representasi array:

5 9 8 7 2 6 1 4 3 1 2 3 4 5 6 7 8 9

Reorganisasi pada node 1 , karena sudah sesuai dengan aturan heap maka node 1 tidak berubah

Representasi array:

Page 18: Tugas Struktur Data II-pengurutan

9 7 8 5 2 6 1 4 3 1 2 3 4 5 6 7 8 9

Penyisipan HeapPenyisipan heap dilakukan ketika ada sebuah elemen baru diinsertkan.Algoritma untuk penyisipan data adalah:

Simpan elemen baru tersebut setelah data paling akhir (tree dengan level paling bawah dan pada posisi sebelah kanan dari data terakhir atau jika level telah penuh , maka simpan data baru tersebut dalam level baru).

Lakukan reorganisasi heap pada node baru tersebut.Proses yang biasanya dipakai adalah proses sift up

Banyak simpul ditambah 1Contoh: Penyisipan heap dengan prioritas/nilai 8Kondisi awal:Banyak Node (N):9

Sisipkan di posisi setelah data terakhir , dan banyak node (N) ditambah dengan 1 menjadi 10

Reorganisasi pada node baru (10)

Page 19: Tugas Struktur Data II-pengurutan

Reorganisasi pada node 5 (karena ada perubahan prioritas) , tukarkan dengan node 7 (node2).

Karena posisi node 2 telah tepat , maka tidak ada reorganisasi sehingga proses penyisipan pun selesai.

Penghapusan HeapProses penghapusan dilakukan ketika root suatu tree diambil.Algoritma penghapusan heap adalah:

Ambil nilai heap Ambil nilai prioritas pada node terakhir , dan dipakai sebagai prioritas root Lakukan proses reorganisasi heap pada root.Umumnya proses yang dilakukan adalah

proses sift down. Banyak simpul dikurang 1.

Contoh: hapus elemen heap.Elemen yang diambil adalah 10 (root).N:10

Page 20: Tugas Struktur Data II-pengurutan

Ambil nilai root , kemudian ganti dengan prioritas simpul terakhir (simpul 10 dengan prioritas 2).sehingga tree menjadi:

Dan banyak simpul (N) dikurang 1 menjadi 9

Kemudian lakukan reorganisasi heap dengan proses sift down pada posisi 1 (root) sehingga tree menjadi:

Karena terjadi pertukaran dengan node 3,maka node 3 direorganisasi kembali sehingga tree menjadi:

Page 21: Tugas Struktur Data II-pengurutan

Karena heap telah benar , maka proses penyisipan selesai.

Pengurutan Heap(Heap Sort)Pengurutan heap dapat dilakukan dengan algoritma seperti dibawah ini:

Buat heap maksimum Jika N lebih besar dari 1 maka tukarkan nilai/prioritas root dengan prioritas simpul

terakhir (simpul ke-N) tetapi jika N sama dengan 1 maka ambil nilai yang ada di root. Kemudian nilai banyak simpul (N) dikurangi 1 Jika N>1 maka lakukan reorganisasi heap yaitu proses sift down terhadap root Lakukan langkah 2 sampai 4 sampai simpul habis (N=0).

Contoh:

Data yang akan diurutkan adalah: 20,11,21,23,17,9,5

Dari data diatas , dapat disusun tree seperti dibawah ini:

Langkah pertama adalah mengkonversi tree diatas menjadi sebuah heapKondisi awalN=7

Page 22: Tugas Struktur Data II-pengurutan

Representasi array:

20 11 21 23 17 9 5 1 2 3 4 5 6 7

Lakukan reorganisasi heap untuk node N/2 (7/2) yaitu 3 sampai node 1.

Node 3

Child sesuai sehingga tidak ada sift down

Representasi array:

20 11 21 23 17 9 5 1 2 3 4 5 6 7

Node 2

Lakukan reorganisasi sift down pada node 2.Karena child dari node 2 ada yang memiliki prioritas lebih besar yaitu 23 dan 17.Tukarkan prioritas node 2 dengan child yang memiliki prioritas paing besar (node 4). Sehingga tree menjadi:

Representasi array:

Page 23: Tugas Struktur Data II-pengurutan

20 23 21 11 17 9 5 1 2 3 4 5 6 7

Node 1

Lakukan sift down karena nilai prioritas child lebih besar dari prioritas node 1.Tukarkan prioritas node 1 dengan prioritas node yang memiliki prioritas terbesar (node 2).Sehingga tree menjadi:

Representasi array:

23 20 21 11 17 9 5 1 2 3 4 5 6 7

Tukarkan nilai simpul root (1) dengan nilai simpul terakhir (N=7) sehingga tree menjadi seperti dibawah ini:

Representasi array:

5 20 21 11 17 9 23 1 2 3 4 5 6 7

Banyak elemen (N) dikurangi 1 menjadi 7-1=6 elemen.simpul dengan nomor diatas N abaikan karena sudah tidak termasuk tree lagi

Page 24: Tugas Struktur Data II-pengurutan

Reorganisasikan sift down terhadap node root (1) sehingga tree menjadi:

Representasi array:

21 20 9 11 17 5 23 1 2 3 4 5 6 7

Tukarkan nilai simpul root (1) dengan nilai simpul terakhir (N=6) sehingga tree menjadi seperti dibawah ini:

Representasi array:

5 20 9 11 17 21 23 1 2 3 4 5 6 7

Reorganisasi sift-down terhadap node root (1) sehingga tree menjadi:

Representasi array:

20 17 9 11 5 21 23

Page 25: Tugas Struktur Data II-pengurutan

1 2 3 4 5 6 7

Tukarkan nilai simpul root (1) dengan nilai simpul terakhir (N=5) sehingga tree menjadi seperti di bawah ini:

Representasi array:

5 17 9 11 20 21 23 1 2 3 4 5 6 7

Reorganisasi sift-down terhadap node root (1) ssehingga tree menjadi:

Representasi array:

17 11 9 5 20 21 23 1 2 3 4 5 6 7

Tukarkan nilai simpul root (1) dengan nilai simpul terakhir (N=4)sehingga tree menjadi seperti di bawah ini:

Page 26: Tugas Struktur Data II-pengurutan

Representasi array:

5 11 9 17 20 21 23 1 2 3 4 5 6 7

Reorganisasi sift-down terhadap node root (1) sehingga tree menjadi:

Representasi array:

5 11 9 17 20 21 23 1 2 3 4 5 6 7

Tukarkan nilai node root dengan nilai node ke-N sehingga tree menjadi:

Representasi array:

9 5 11 17 20 21 23 1 2 3 4 5 6 7

Reorganisasi sift-down terhadap node root (1) sehingga tree menjadi sebagai berikut:Karena node root telah sesuai ketentuan heap pada proses Reorganisasi tidak dilakukan sehingga tree tetap

Page 27: Tugas Struktur Data II-pengurutan

9 5 11 17 20 21 23 1 2 3 4 5 6 7

Tukarkan nilai root dengan nilai pada node ke-N (N=2).Sehingga tree menjadi:

Representasi array:

5 9 11 17 20 21 23 1 2 3 4 5 6 7

Karena N sama dengan 1 maka tidak perlu ada reorganisasi Karena N sama dengan 1 maka ambil data yang ada di root sehingga tree menjadi kosong ,

seperti di bawah ini:

Representasi array:

Page 28: Tugas Struktur Data II-pengurutan

5 9 11 17 20 21 23 1 2 3 4 5 6 7

Karena N telah mencapai 0 maka pengurutan selesai.