Upload
tranbao
View
219
Download
0
Embed Size (px)
Citation preview
Quick SortDIK-013 Data Structure
Diploma 3 Years in Informatics Management
Irvanizam Zamanhuri, M.ScInformatics (Computer Science) Study ProgramSyiah Kuala Universityhttp://www.informatika.unsyiah.ac.id/irvanizamEmail: [email protected]
Quick Sorto Quick sort is a fast sorting algorithmo On the average, it has O(n log n) complexity, o Making quicksort suitable for sorting big data volumes.o The idea of the algorithm is quite simple.o Quick sort is a sort method using a partition.o Quick sort is a sort method using a partition.o There are two partitions (left and right), where the
data in the left partition are always smaller than the data in the right partition.
o However the data in those partitions have not sorted yet.
o Therefore, we need to sort those data separately.
Algorithmo Quick sort menggunakan strategi devide and conqure.
Berikut langkah rekursi nya adalah: 1. Pilih sebuah nilai pivot x.
Nilai x bisa merupakan nilai tengah dari elemen atau sembarang nilai dari elemen-element yang mau diurutkan.Baca data dari ujung kanan ke kiri sampai ditemukan data 2. Baca data dari ujung kanan ke kiri sampai ditemukan data a[i] sehingga a[i] < x (partisi kiri).
3. Baca data dari ujung kiri ke kanan sampai ditemukan data a[j] sehingga a[j] >= x (partisi kanan).
4. Tukar kedua data a[i] dan a[j].5. Ulangi proses 2 – 4, sampai seluruh data terbagi dua bagian
kiri yang lebih kecil dari x dan kanan yang lebih besar dari x.
Algoritma Partisi secara Detailq Terdapat dua indeks i dan j, dan awalnya index i
ditunjukkan pada elemen pertama didalam array dan index j ditunjukkan pada elemen terakhir di dalam array.
q Algoritma memindahkan indeks i secara increment, sampai sebuah elemen yang nilainya lebih besar atau sama dengan nilai pivot x ditemukan.sama dengan nilai pivot x ditemukan.
q Algoritma memindahkan indeks j secara decrement, sampai sebuah elemen yang nilainya lebih kecil atau sama dengan nilai pivot ditemukan.
q Jika i ≤ ≤ ≤ ≤ j maka elemen pada posisi i dan j ditukarkan.
q Dan indeks i dipindahkan ke (i+1) dan indeks j dipindahkan ke (j-1). Algoritma berhenti ketika i > j
Algoritma (continue)q Setelah partisi, semua nilai sebelum i-th elemen lebih
kecil atau sama dengan nilai pivot x.
q Semua nilai setelah j-th elemen lebih besar atau sama dengan nilai pivot x.
Example
q Sort {1, 12, 5, 26, 7, 14, 3, 7, 2} using quicksort.
q Answer:
Continue
Contoh 2
Animasi Quick Sort
Referenceo http://www.informatika.unsyiah.ac.id/tfa/ds/quicksort.pdf o http://lecturer.eepis-its.edu/~arna/Modul_ASD/8.5%20Quick-
Sort.pdf o http://www.algolist.net/Algorithms/Sorting/Quicksort o http://en.wikipedia.org/wiki/Quick_sort