Professional Documents
Culture Documents
07 - Strategi Pengurutan (Shell Sort)
07 - Strategi Pengurutan (Shell Sort)
Shell Sort
Data Acak : 22 10 15 3 8 2
Terurut Ascending : 2 3 8 10 15 22
Terurut Descending : 22 15 10 8 3 2
3
Macam-macam Sorting
Buble Sort
Selection Sort
Insertion Sort
Shell Sort
Merge Sort
Quick Sort
4
SHELL SORT
Metode ini disebut juga dengan metode
pertambahan menurun (diminishing
increment).
5
Konsep Algoritma Shell Sort
Pertama-tama adalah menentukan jarak mula-mula dari data yang akan dibandingkan,
yaitu N / 2. Data pertama dibandingkan dengan data dengan jarak N / 2. Apabila data
pertama lebih besar dari data ke N / 2 tersebut maka kedua data tersebut ditukar.
Kemudian data kedua dibandingkan dengan jarak yang sama yaitu N / 2. Demikian
seterusnya sampai seluruh data dibandingkan sehingga semua data ke-j selalu lebih
kecil daripada data ke-(j + N / 2).
Pada proses berikutnya, digunakan jarak (N / 2) / 2 atau N / 4. Data pertama
dibandingkan dengan data dengan jarak N / 4. Apabila data pertama lebih besar dari
data ke N / 4 tersebut maka kedua data tersebut ditukar. Kemudian data kedua
dibandingkan 94 dengan jarak yang sama yaitu N / 4. Demikian seterusnya sampai
seluruh data dibandingkan sehingga semua data ke-j lebih kecil daripada data ke-(j + N /
4).
Pada proses berikutnya, digunakan jarak (N / 4) / 2 atau N / 8. Demikian seterusnya
sampai jarak yang digunakan adalah 1
6
Algoritma metode Shell dapat dituliskan sebagai berikut :
7
Ilustrasi Proses Algoritma
Mari kita perhatikan contoh berikut untuk
memiliki gagasan tentang cara kerja Shell sort.
Untuk contoh dan kemudahan pemahaman,
misal mengambil interval 4. Buat daftar sub-
virtual dari semua nilai yang berada pada
interval 4 posisi. Di sini nilai-nilai ini adalah
{35, 14}, {33, 19}, {42, 27} dan {10, 44}
Bagaimana selanjutnya? 8
Disisni kita membandingkan nilai dalam setiap sub-daftar dan menukarkannya (jika
perlu) dalam larik aslinya. Setelah langkah ini, array baru akan terlihat seperti ini
9
Kemudian, kita mengambil interval 2 dan celah ini menghasilkan dua sub-
daftar - {14, 27, 35, 42}, {19, 10, 33, 44}
10
Kita membandingkan dan menukar nilai, jika diperlukan, dalam larik asli. Setelah langkah
ini, array akan terlihat seperti ini:
11
Akhirnya, kita mengurutkan sisa array
menggunakan interval nilai 1. Shell sort
menggunakan semacam penyisipan untuk
mengurutkan array.
Berikut adalah penggambaran langkah demi
langkah :
12
Perhatikan contoh penyelesaian menggunakan tabel:
13
Proses Pengurutan dengan Metode Shell
14
Kelebihan dan Kekurangan
Kelebihan Shell sort :
15
Implementasi dalam Java
Latihan 39 : Shell sort secara ascending dengan data int
16
Output:
17
Latihan 40 : Shell sort secara descending dengan data int
18
Output:
19
Kompleksitas Shell Sort
Algoritma shell sort adalah algoritma dengan kompleksitas algoritma O(n2 ) dan yang paling
efisien dibandingkan algoritma – algoritma yang lain dengan kompleksitas algoritma yang
sama.
Algoritma shell sort lima kali lebih cepat dibandingkan algoritma pengurutan bubble sort dan
dua kali lebih cepat dibandingkan algoritma pengurutan dengan insertion sort.
Algoritma shell sort juga merupakan algoritma yang paling kompleks dan sulit dipahami.
20
TUGAS INDIVIDU
5,7,9,1,8,12,3,4,6
Bagaimana hasilnya?
21
Thanks!
22