SlideShare a Scribd company logo
Sorting AlgorithmS
1. Selection
2. Bubble
3. InSertion
4. Merge
5. Quick
6. Shell
DefiniSi
• Metode ini diSebut juga dengan metode
pertambahan menurun (diminiShing
increment Sort). Metode ini
dikembangkan oleh Donald L. Shell pada
tahun 1959, Sehingga Sering diSebut
dengan Metode Shell Sort.
• Metode ini mengurutkan data dengan cara
membandingkan Suatu data dengan data
lain yang memiliki jarak tertentu –
Sehingga membentuk Sebuah Sub-liSt-,
kemudian dilakukan penukaran bila
diperlukan
DefiniSi
• Jarak yang dipakai didaSarkan pada
increment value atau Sequence number k
• MiSalnya Sequence number yang dipakai
adalah 5,3,1. Tidak ada pembuktian di
Sini bahwa bilangan-bilangan terSebut
adalah Sequence number terbaik
• Setiap Sub-liSt beriSi Setiap elemen ke-k
dari kumpulan elemen yang aSli
DefiniSi
• Contoh: Untuk array S, jika k = 5 maka sub-list nya adalah
sebagai berikut :
- S[0] S[5] S[10] ...
- S[1] S[6] S[11] …
- S[2] S[7] S[12] …
- dst
• Begitu juga jika k = 3 maka sub-list nya adalah:
- S[0] S[3] S[6] ...
- S[1] S[4] S[7] …
- dst
Proses Shell Sort
• Buatlah sub-list yang didasarkan pada
jarak (Sequence number) yang dipilih
• Urutkan masing-masing sub-list
tersebut
• Gabungkan seluruh Sub-list
Let’s see this algorithm in action
Proses Shell Sort
• Urutkan sekumpulan elemen di bawah ini,
misalnya diberikan Sequence number : 5, 3, 1
30 62 53 42 17 97 91 38
[0] [1] [2] [7][3] [4] [5] [6]
Proses Shell Sort utk k=5
3030 62 53 42 17 97 91 3862 53 42 17 97 91 38
S[3]
S[0] S[5]
S[1] S[6]
S[2] S[7]
Step 1: Buat sub list k = 5
Step 2 - 3: Urutkan Sub list & gabungkan
S[0] < S[5] This is OK
S[1] < S[6] This is OK
S[2] > S[7] This is not OK.
Swap them
30 62 53 42 17 97 91 38
[0] [1] [2] [7][3] [4] [5] [6]
30 62 38 42 17 97 91 53
[0] [1] [2] [7][3] [4] [5] [6]
Proses Shell Sort utk k=3
3030 62 53 42 17 97 91 3862 53 42 17 97 91 38
S[0] S[3] S[6]
S[1] S[4] S[7]
S[2] S[5]
Step 1: Buat sub list k = 3
Step 2 - 3: Urutkan sub list & gabungkan
S[0] S[3] S[6] 30, 42, 91 OK
S[1] S[4] S[7] 62, 17, 53 not OK
SORT them 17, 53, 62
S[2] S[5] 38, 97 OK
30 62 38 42 17 97 91 53
[0] [1] [2] [7][3] [4] [5] [6]
30 17 38 42 53 97 91 62
[0] [1] [2] [7][3] [4] [5] [6]
Shell Sort Proses utk k=1
3030 62 53 42 17 97 91 3862 53 42 17 97 91 38
S[0] S[1] S[2] S[3] S[4] S[5] S[6] S[7]Step 1: Buat Sub list k =1
Step 2 - 3: Urutkan Sub list & gabungkan
Sorting akan Seperti insertion sort
DONE
30 17 38 42 53 97 91 62
[0] [1] [2] [7][3] [4] [5] [6]
17 30 38 42 53 62 91 97
[0] [1] [2] [7][3] [4] [5] [6]
Pemilihan Sequence Number
• Disarankan jarak mula-mula dari data
yang akan dibandingkan adalah: N / 2.
• Pada proses berikutnya, digunakan jarak
(N / 2) / 2 atau N / 4.
• Pada proses berikutnya, digunakan jarak
(N / 4) / 2 atau N / 8.
• Demikian seterusnya sampai jarak yang
digunakan adalah 1.
Urutan prosesnya…
• Untuk jarak N/2 :
- Data pertama (j=0) 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 (j=1) 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).
• Ulangi langkah-langkah di atas untuk jarak = N / 4 lakukan
pembandingan dan pengurutan sehingga semua data ke-j lebih
kecil daripada data ke-(j + N / 4).
• Ulangi langkah-langkah di atas untuk jarak = N / 8 lakukan
pembandingan dan pengurutan sehingga semua data ke-j lebih
kecil daripada data ke-(j + N / 8).
• Demikian seterusnya sampai jarak yang digunakan adalah 1 atau
data sudah terurut (did_swap = false).
Algoritma Metode Shell Sort
1. Jarak ← N
2. Selama Jarak>1 kerjakan baris 3 Sampai dengan 12
3. Jarak ← Jarak / 2.
4. did_swap ← true
5. Kerjakan baris 6 sampai dengan 11 selama did_swap
= true
6. did_swap ← false
7. j ← 0
8. Selama j < (N – Jarak) kerjakan baris 9 dan 12
9. Jika Data[j] > Data[j + Jarak] kerjakan baris
10 dan 11
10. tukar(Data[j], Data[j + Jarak])
11. did_swap ← true
12. j ← j + 1
Analisis Metode Shell Sort
• Running time dari metode Shell Sort
bergantung pada beratnya pemilihan
Sequence number.
• Disarankan untuk memilih Sequence number
dimulai dari N/2, kemudian membaginya lagi
dengan 2, Seterusnya hingga mencapai 1.
• Shell Sort menggunakan 3 nested loop, untuk
merepresentasikan Sebuah pengembangan
yang substansial terhadap metode insertion
Sort
Pembandingan Running time
(millisecond) antara insertion and Shell
N insertion ShellSort
1000 122 11
2000 483 26
4000 1936 61
8000 7950 153
16000 32560 358
Ref: Mark Allan Wiess
(Florida International University)
ShellSort AnalySiS
Ref: Mark Allan WieSS

More Related Content

PPTX
Materi 3 Finite State Automata
PDF
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
PDF
PDF
Matematika Diskrit - 09 graf - 06
PPTX
3 Linked List
PPTX
Data Mining Klasifikasi (Updated 30 Desember 2020)
PPTX
Membuat buku tamu dengan php
PPT
Modul 8 - Jaringan Syaraf Tiruan (JST)
Materi 3 Finite State Automata
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Matematika Diskrit - 09 graf - 06
3 Linked List
Data Mining Klasifikasi (Updated 30 Desember 2020)
Membuat buku tamu dengan php
Modul 8 - Jaringan Syaraf Tiruan (JST)

What's hot (20)

PPT
Modul 3 pencarian heuristik
PDF
Aturan produksi Finite State Automata
PPT
3 way handshake
PDF
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
PPTX
PENGENALAN DATA SCIENCE.pptx
PPTX
Graf ( Matematika Diskrit)
PPTX
Normalisasi Basis Data
PPT
Struktur Data Tree
PDF
Pertemuan 04 Teknik Pencarian (Search)
PDF
(Jst)hebb dan delta rule
DOC
Linked list
PPT
Algoritma penjadwalan proses
PPTX
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
PPTX
4 ekuivalen logis
PPTX
PPT Jaringan Komputer
PPT
Pertemuan 4-metode-pencarian-dan-pelacakan
DOCX
sistem digital-Rangkaian penjumlah
PPT
2 ruang keadaan
PPT
Algoritma dan Flowchart.ppt
PPT
5 Macam Metode Dasar Kriptografi
Modul 3 pencarian heuristik
Aturan produksi Finite State Automata
3 way handshake
ERD Sistem Informasi Pemesanan Tiket Bioskop Online
PENGENALAN DATA SCIENCE.pptx
Graf ( Matematika Diskrit)
Normalisasi Basis Data
Struktur Data Tree
Pertemuan 04 Teknik Pencarian (Search)
(Jst)hebb dan delta rule
Linked list
Algoritma penjadwalan proses
Webinar PHP-ID: Mari Mengenal Logika Fuzzy (Fuzzy Logic)
4 ekuivalen logis
PPT Jaringan Komputer
Pertemuan 4-metode-pencarian-dan-pelacakan
sistem digital-Rangkaian penjumlah
2 ruang keadaan
Algoritma dan Flowchart.ppt
5 Macam Metode Dasar Kriptografi
Ad

More from FajarZain (20)

PPTX
Bahaya Pornografi dan Pencegahannya
PPT
Bentuk negara
PPT
9. geostrategi indonesia (Acuan 2006)
PPT
7. ham dan rule of law (Acuan 2006)
PPT
6. demokrasi indonesia (Acuan 2006)
PPT
5. negara dan konstitusi (Acuan 2006)
PPT
4. hak dan kewajiban warga negara (Acuan 2006)
PPT
3. identitas nasional (Acuan 2006)
PPT
2. filsafat pancasila (Acuan 2006)
PPT
1. Pengantar (Acuan 2006)
PDF
Sorting selection-sort
PDF
Sorting quick-sort
PDF
Sorting merge-sort
PDF
Sorting insertion-sort
PDF
Sorting bubble-sort
PDF
Sorting bubble-sort anim
PPT
08. memory 2
PPT
07. memory
PPT
06. struktur cpu 2
PPT
05. struktur cpu
Bahaya Pornografi dan Pencegahannya
Bentuk negara
9. geostrategi indonesia (Acuan 2006)
7. ham dan rule of law (Acuan 2006)
6. demokrasi indonesia (Acuan 2006)
5. negara dan konstitusi (Acuan 2006)
4. hak dan kewajiban warga negara (Acuan 2006)
3. identitas nasional (Acuan 2006)
2. filsafat pancasila (Acuan 2006)
1. Pengantar (Acuan 2006)
Sorting selection-sort
Sorting quick-sort
Sorting merge-sort
Sorting insertion-sort
Sorting bubble-sort
Sorting bubble-sort anim
08. memory 2
07. memory
06. struktur cpu 2
05. struktur cpu
Ad

Recently uploaded (7)

PPTX
bentuk bentuk bilangan kompleks WPS Office.pptx
PPTX
SAINS TINGKATAN 4 BAB 8 - Unsur dan Bahan
PPTX
SAINS TINGKATAN 1_KUANTITI FIZIK DAN UNITNYA
PDF
SAINS TINGKATAN 1_PENGENALAN KEPADA PENYIASATAN SAINTIFIK
PDF
SBP - DASAR, SYARAT & KRITERIA PENGAMBILAN TAHUN 2026.pdf
PDF
PENDIDIKAN JASMANI DAN PENDIDIKAN KESIHATAN
PPTX
Kelas Dalam Talian Penjodoh Bilangan (ZOOM).pptx
bentuk bentuk bilangan kompleks WPS Office.pptx
SAINS TINGKATAN 4 BAB 8 - Unsur dan Bahan
SAINS TINGKATAN 1_KUANTITI FIZIK DAN UNITNYA
SAINS TINGKATAN 1_PENGENALAN KEPADA PENYIASATAN SAINTIFIK
SBP - DASAR, SYARAT & KRITERIA PENGAMBILAN TAHUN 2026.pdf
PENDIDIKAN JASMANI DAN PENDIDIKAN KESIHATAN
Kelas Dalam Talian Penjodoh Bilangan (ZOOM).pptx

Sorting shell-sort bw

  • 1. Sorting AlgorithmS 1. Selection 2. Bubble 3. InSertion 4. Merge 5. Quick 6. Shell
  • 2. DefiniSi • Metode ini diSebut juga dengan metode pertambahan menurun (diminiShing increment Sort). Metode ini dikembangkan oleh Donald L. Shell pada tahun 1959, Sehingga Sering diSebut dengan Metode Shell Sort. • Metode ini mengurutkan data dengan cara membandingkan Suatu data dengan data lain yang memiliki jarak tertentu – Sehingga membentuk Sebuah Sub-liSt-, kemudian dilakukan penukaran bila diperlukan
  • 3. DefiniSi • Jarak yang dipakai didaSarkan pada increment value atau Sequence number k • MiSalnya Sequence number yang dipakai adalah 5,3,1. Tidak ada pembuktian di Sini bahwa bilangan-bilangan terSebut adalah Sequence number terbaik • Setiap Sub-liSt beriSi Setiap elemen ke-k dari kumpulan elemen yang aSli
  • 4. DefiniSi • Contoh: Untuk array S, jika k = 5 maka sub-list nya adalah sebagai berikut : - S[0] S[5] S[10] ... - S[1] S[6] S[11] … - S[2] S[7] S[12] … - dst • Begitu juga jika k = 3 maka sub-list nya adalah: - S[0] S[3] S[6] ... - S[1] S[4] S[7] … - dst
  • 5. Proses Shell Sort • Buatlah sub-list yang didasarkan pada jarak (Sequence number) yang dipilih • Urutkan masing-masing sub-list tersebut • Gabungkan seluruh Sub-list Let’s see this algorithm in action
  • 6. Proses Shell Sort • Urutkan sekumpulan elemen di bawah ini, misalnya diberikan Sequence number : 5, 3, 1 30 62 53 42 17 97 91 38 [0] [1] [2] [7][3] [4] [5] [6]
  • 7. Proses Shell Sort utk k=5 3030 62 53 42 17 97 91 3862 53 42 17 97 91 38 S[3] S[0] S[5] S[1] S[6] S[2] S[7] Step 1: Buat sub list k = 5 Step 2 - 3: Urutkan Sub list & gabungkan S[0] < S[5] This is OK S[1] < S[6] This is OK S[2] > S[7] This is not OK. Swap them 30 62 53 42 17 97 91 38 [0] [1] [2] [7][3] [4] [5] [6] 30 62 38 42 17 97 91 53 [0] [1] [2] [7][3] [4] [5] [6]
  • 8. Proses Shell Sort utk k=3 3030 62 53 42 17 97 91 3862 53 42 17 97 91 38 S[0] S[3] S[6] S[1] S[4] S[7] S[2] S[5] Step 1: Buat sub list k = 3 Step 2 - 3: Urutkan sub list & gabungkan S[0] S[3] S[6] 30, 42, 91 OK S[1] S[4] S[7] 62, 17, 53 not OK SORT them 17, 53, 62 S[2] S[5] 38, 97 OK 30 62 38 42 17 97 91 53 [0] [1] [2] [7][3] [4] [5] [6] 30 17 38 42 53 97 91 62 [0] [1] [2] [7][3] [4] [5] [6]
  • 9. Shell Sort Proses utk k=1 3030 62 53 42 17 97 91 3862 53 42 17 97 91 38 S[0] S[1] S[2] S[3] S[4] S[5] S[6] S[7]Step 1: Buat Sub list k =1 Step 2 - 3: Urutkan Sub list & gabungkan Sorting akan Seperti insertion sort DONE 30 17 38 42 53 97 91 62 [0] [1] [2] [7][3] [4] [5] [6] 17 30 38 42 53 62 91 97 [0] [1] [2] [7][3] [4] [5] [6]
  • 10. Pemilihan Sequence Number • Disarankan jarak mula-mula dari data yang akan dibandingkan adalah: N / 2. • Pada proses berikutnya, digunakan jarak (N / 2) / 2 atau N / 4. • Pada proses berikutnya, digunakan jarak (N / 4) / 2 atau N / 8. • Demikian seterusnya sampai jarak yang digunakan adalah 1.
  • 11. Urutan prosesnya… • Untuk jarak N/2 : - Data pertama (j=0) 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 (j=1) 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). • Ulangi langkah-langkah di atas untuk jarak = N / 4 lakukan pembandingan dan pengurutan sehingga semua data ke-j lebih kecil daripada data ke-(j + N / 4). • Ulangi langkah-langkah di atas untuk jarak = N / 8 lakukan pembandingan dan pengurutan sehingga semua data ke-j lebih kecil daripada data ke-(j + N / 8). • Demikian seterusnya sampai jarak yang digunakan adalah 1 atau data sudah terurut (did_swap = false).
  • 12. Algoritma Metode Shell Sort 1. Jarak ← N 2. Selama Jarak>1 kerjakan baris 3 Sampai dengan 12 3. Jarak ← Jarak / 2. 4. did_swap ← true 5. Kerjakan baris 6 sampai dengan 11 selama did_swap = true 6. did_swap ← false 7. j ← 0 8. Selama j < (N – Jarak) kerjakan baris 9 dan 12 9. Jika Data[j] > Data[j + Jarak] kerjakan baris 10 dan 11 10. tukar(Data[j], Data[j + Jarak]) 11. did_swap ← true 12. j ← j + 1
  • 13. Analisis Metode Shell Sort • Running time dari metode Shell Sort bergantung pada beratnya pemilihan Sequence number. • Disarankan untuk memilih Sequence number dimulai dari N/2, kemudian membaginya lagi dengan 2, Seterusnya hingga mencapai 1. • Shell Sort menggunakan 3 nested loop, untuk merepresentasikan Sebuah pengembangan yang substansial terhadap metode insertion Sort
  • 14. Pembandingan Running time (millisecond) antara insertion and Shell N insertion ShellSort 1000 122 11 2000 483 26 4000 1936 61 8000 7950 153 16000 32560 358 Ref: Mark Allan Wiess (Florida International University)