Meningkatkan kemampuan quick sort

Slides:



Advertisements
Presentasi serupa
BAB III – ARRAY STATIS II
Advertisements

Algoritma Sorting Alpro-2.
Desain Dan Analisis Algoritma
STRUKTUR DATA (3) sorting array
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
PENGURUTAN ( SORTING ) Fajrizal.
STRUKTUR DATA sorting array
Pengurutan cepat (quick sort)
QUICK SORT Kelompok 9.
Algoritma Divide and Conquer
Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir
STRUKTUR DATA (3) sorting array
SORTING.
Algoritma & Struktur Data Sorting Evangs Mailoa.
Quick Sort dan Merge Sort
Sorted = terurut menurut kaidah/aturan tertentu
Sorting Pertemuan ke 14..
Algoritma dan Struktur Data
Source: Sorting Algorithms source:
BAB 6 S O R T I R Sebelum mengetahui lebih jauh tentang sorting, sebaiknya kita ingat kembali pengertian file dan record. File adalah kumpulan record,
STRUKTUR DATA (4) Sorting dan Searching Array
Sambungan metode simplex…
Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan.
Sorting (Pengurutan).
Sorting 2007/2008 – Ganjil – Minggu 5.
Algoritma dan Struktur Data
Matakuliah: T0034 / Perancangan & Analisis Algoritma Tahun: 2008 Pertemuan 9 DIVIDE AND CONQUER (1)
Metode Pengurutan (Sorting)
Algoritma Divide and Conquer (Bagian 2) Wahyul Wahidah Maulida, ST.,M.Eng.
12-CRS-0106 REVISED 8 FEB 2013 CSG523/ Desain dan Analisis Algoritma Divide and Conquer Intelligence, Computing, Multimedia (ICM)
Insertion Sort Dilakukan dengan cara membandingkan data ke-i (di mana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya.
Algoritma dan Struktur Data 1 pertemuan 11
PENGURUTAN (SORTING).
STRUKTUR DATA Chapt 07 : Sorting Oleh : Yuli Praptomo PHS, S.Kom.
Struktur Data Prio Handoko, S. Kom., M.T.I.
Algoritma Divide and Conquer
PENGURUTAN (SORTING) Pengurutan adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat dilakukan secara.
SORTING (Lanjut).
Pengurutan (Sorting).
STRUKTUR DATA (3) sorting array
Sorting.
Faktor analisa algoritma
Algoritma dan Struktur Data
Pengurutan cepat (quick sort)
Sistem Berkas – Sesi 12 dan 13
STRUKTUR DATA (3) sorting array
Metode pemecahan masalah
STRUKTUR DATA sorting array
Imam Gunawan, M. Kom STMIK-AMIK Jayanusa Padang
Sorting Shell sort, Merge sort, Quick sort
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
Library Sort Sagi Arsyad
Shorting (Pengurutan)
Bubble sort.
Sorting.
Algoritma sorting.
Sorting (Pengurutan).
STRUKTUR DATA (3) sorting array
Pertemuan 4 Sorting (1) jual [Valdo] Lunatik Chubby Stylus.
IT234 Algoritma dan Struktur Data
Sorting Dasar Pemrograman
STRUKTUR DATA (3) sorting array
IT234 Algoritma dan Struktur Data
STRUKTUR DATA (3) sorting array
Pengurutan (sorting).
IT234 Algoritma dan Struktur Data
MODEL SORTING Kelompok V Rahmawati ( )
Sorting.
Sorting (Pengurutan).
SORTING.
Transcript presentasi:

Meningkatkan kemampuan quick sort Improving Quick Sort Meningkatkan kemampuan quick sort

Permasalahan dengan data yang urutannya terbalik Semakin banyak data yang urutannya terbalik, quick sort semakin melambat. Mengindikasikan semakin banyaknya subarray yang dipartisi. 8 9 7 6 5 3 1 0 4 2 Pindah ke Kanan Pindah ke Kiri

Apa yang terjadi???? Jika terjadi kasus mengurutkan subarray satu besar dan satu kecil maka efisiensi akan menurun. Karena subarray yang besar akan dibagi- bagi lebih banyak. 8 9 7 6 5 3 1 0 4 2 Besar

Apa yang terjadi???? Situasi terburuk ketika satu subarray berisi 1 elemen dan subarray yang lain N- 1 element. Lebih buruk lagi jika tiap partisi 1 & N-1. 8 9 7 6 5 3 1 0 4 2 1 N-1

4 7 2 9 5 3 8 6 10 Jadi…. Median Masalahnya ada di pemilihan pivot. Idealnya pivot adalah nilai tengah dari data yang akan diurutkan. Median 4 7 2 9 5 3 8 6 10

4 7 2 9 5 3 8 6 10 Jadi…. Median Subarray sama besar Dua subarray yang sama besar merupakan kondisi optimal. Lebih Optimal lagi jika tiap partisi pivot nya adalah nilai tengah. Median 4 7 2 9 5 3 8 6 10 Subarray sama besar

Memilih The Best Pivot Mengambil pivot secara acak itu mudah, tapi tidak selalu tepat. Mencari nilai tengah dalam array adalah pilihan tepat, tapi prakteknya pemilihan pivot bisa memerlukan waktu lebih lama dibanding pengurutan itu sendiri.

Memilih The Best Pivot Mengambil pivot secara acak itu mudah, tapi tidak selalu tepat. Mencari nilai tengah dalam array adalah pilihan tepat, tapi prakteknya pemilihan pivot bisa memerlukan waktu lebih lama dibanding pengurutan itu sendiri. Solusinya : Median-of-three

5 7 2 9 0 3 8 6 1 4 Median Of Three????? Median = 4 Mencari nilai tengah dari elemen pertama, tengah, dan akhir yang digunakan sebagai pivot. awal tengah akhir 5 7 2 9 0 3 8 6 1 4 Median = 4

5 7 2 9 0 3 8 6 1 4 Median Of Three????? Median = 4 Sehingga terhindar dari pengambilan elemen yang terbesar ataupun terkecil pada data terurut ataupun data urutannya terbalik. awal tengah akhir 5 7 2 9 0 3 8 6 1 4 Median = 4

Next Step Tukarkan nilai awal,tengah, akhir. Awal diisi nilai terkecil, akhir diisi nilai terbesar. Dan tengah nilai median awal tengah akhir 0 7 2 9 4 3 8 6 1 5 Median = 4

0 7 2 9 4 3 8 6 1 5 Next Step Median = 4 Jadikan median sebagai pivot. Kemudian lanjutkan langkah pengurutan seperti basic quick sort. awal tengah akhir 0 7 2 9 4 3 8 6 1 5 Median = 4

Next Step Hasilnya sampai pivot 4 selesai. 0 1 2 3 4 7 8 6 9 5

0 1 2 3 4 7 8 6 9 5 Next Step Hasilnya sampai pivot 4 selesai. Ulangi langkah median-of-three untuk subarray yang belum terurut. 0 1 2 3 4 7 8 6 9 5

Next Step Cari median-of-three untuk subarray yang belum terurut. Tempatkan pivot di tengah 0 1 2 3 4 5 8 6 9 7

0 1 2 3 4 5 6 8 9 7 Next Step Hasilnya sampai pivot 6 selesai. Ulangi langkah median-of-three untuk subarray yang belum terurut. 0 1 2 3 4 5 6 8 9 7

Quick Sort Successfully 0 1 2 3 4 5 6 7 8 9

Menangani Partisi Kecil Median-of-three tidak dapat bekerja pada partisi dengan 3 elemen atau kurang dari 3 elemen. Hal ini disebut cutoff point. Solusinya : Insertion Sort

Insertion Sort for Small Partition Opsi pertama : Menggunakan insertion sort ketika bertemu cutoff point. cuttoff 0 1 2 3 4 5 6 8 9 7 Insertion sort

Insertion Sort for Small Partition Opsi kedua : Tetap jalankan quick sort, ketika bertemu cutoff hentikan quick sort. Kemudian insertion sort untuk seluruh array. cuttoff 0 1 2 3 4 5 6 8 9 7 Insertion sort

Insertion Sort for Small Partition Tapi jauh lebih baik insertion sort untuk sejumlah pengurutan kecil daripada satu tapi besar. cuttoff 0 1 2 3 4 5 6 8 9 7 Insertion sort