Metode Quicksort
Nama :
Emirza Mahendra
NPM :
53414559
Kelas :
1IA17
Mata
Kuliah : Algoritma dan Pemrograman 1A
Dosen :
Kunto Bayu A, S.T.
Quicksort
merupakan Algoritma Sorting yang dikembangkan oleh Tony Hoare yang, secara
kasus rata-rata, membuat pengurutan O(n log n) untuk mengurutkan n item.
Algoritma ini juga dikenal sebagai Partition-Exchange Sort atau disebut sebagai
Sorting Pergantian Pembagi. Pada kasus terburuknya, algoritma ini membuat
perbandingan O(n2), malaupun kejadian seperti ini sangat langka. Quicksort
sering lebih cepat dalam praktiknya dari pada algoritma O(n log n) yang
lainnya.Quicksort merupakan sorting pembanding dan pada implementasi efisien
tidak merupakan algoritma sorting yang stabil.
Quick
Sort merupakan suatu algoritma pengurutan data yang menggunakan teknik
pemecahan data menjadi partisi-partisi, sehingga metode ini disebut juga dengan
nama partition exchange sort. Untuk memulai irterasi pengurutan, pertama-tama
sebuah elemen dipilih dari data, kemudian elemen-elemen data akan diurutkan
diatur sedemikian rupa, sehingga nilai variabel Sementara berada di suatu
posisi ke I yang memenuhi kondisi sebagai berikut :
- Semua elemen di posisi ke 1 sampai dengan ke I-1 adalah lebih kecil atau sama dengan Sementara.
- Semua elemen di posisi ke I+1 sampai dengan ke N adalah lebih besar atau sama dengan Sementara.
Misalnya element yang dipilih adalah element yang
pertama, maka variabel Sementara bernilai 33. Setelah diatur, maka nilai 33
akan menempati posisi ke I, yaitu posisi urutan ke 6 sebagai berikut :
Tampak
bahwa kondisi berikut terpenuhi, yaitu :
- Semua elemen di posisi ke 1 sampai dengan posisi ke 5 (10, 25, 18, 7,dan 5) akan lebih kecil atau sama dengan nilai 33 yang dipilih.
- Semua elemen di posisi ke 7 sampai dengan ke 12 (57,99,55,45,40 dan 50) aka lebih besar atau sama dengan nilai 33 yang dipilih.
(10 25 18 7
5) 33 (57 99 55 45 40 50)
data (10,
25, 18, 7, 5) dan data (57, 99, 55, 45, 40, 50).
Untuk
partisi yang pertama, bila nilai Sementara yang diambil adalah data pertama
kembali dalam partisi bersangkutan, yaitu 10 dan diatur kembali sedemikian
rupa, maka nilai data yang dipilih akan terletak di posisi sebagai berikut:
(5 7)
10 (18 25) 33 (57 99 55 45 40 50)
Untuk
mengurutkan masing-masing partisi, maka proses tersebut diulangi kembali dan
tiap-tiap partisi dipecah-pecah kembali lebih lanjut. Kurung yang menutupi
partisi menunjukkan data yang belum urut dan perlu diurutkan kembali. Sedang
data yang tidak berada diantara tanda kurung merupakan data yang sudah diurut.
Iterasi selanjutya sampai didapatkan data yang telah urut semuanya adalah
sebagai berikut ini.
5 ( 7) 10 (18 25) 33 (57 99 55 45 40
50)
5 7 10 18
(25) 33 (57 99 55 45 40 50)
5 7 10 18
25 33 (50 40 55 45) 57 (99)
5 7 10
18 25 33 (50 40 55 45) 57 99
5 7 10
18 25 33 (45 40) 50 (55) 57 99
5 7 10
18 25 33 (45 40) 50 55 57 99
5 7 10
18 25 33 40 (45) 50 55 57 99
5 7 10
18 25 33 40 45 50 55 57 99
Bila diamati lebih lanjut, maka quick sort dapat
didefinisikan dengan lebih mudah menggunakan prosedur rekursi. Misalnya untuk
partisi sebagai berikut:
Maka Proses dari rekursi tampak pada pengurutan
data dari bawah sampai dengan I-1 dan pengurutan I+1 sampai dengan atas.
Sumber :
http://id.wikipedia.org/wiki/Quicksort
http://kudaneal.blogspot.com/2010/11/v-behaviorurldefaultvmlo.html
Tidak ada komentar:
Posting Komentar