You are on page 1of 3

Perbandingan Heap Sort dan Quick Sort

Dalam Proses Pengurutan Data
Simon H S1, Amalia Rahmah2, Yudhie Hatmadji S3
Laboratorium Ilmu dan Rekayasa Komputasi
Departemen Teknik Informatika, Institut Teknologi Bandung
Jl. Ganesha 10, Bandung

E-mail : if14056@students.if.itb.ac.id1, if14065@students.if.itb.ac.id2,
if14098@students.if.itb.ac.id3

Abstrak

Pengurutan data merupakan salah satu algoritma dasar yang cukup sering digunakan. Algoritma ini digunakan
sebagai dasar untuk membangun sebuah aplikasi yang melibatkan pemrosesan data. Algoritma Quick Sort dan
Heap Sort merupakan dua buah algoritma pengurutan data yang terbaik saat ini dengan kelebihannya masing-
masing. Namun, algoritma apapun pastinya memiliki kelemahan. Dalam makalah ini, kami akan mencoba
memaparkan keunggulan dan kelemahan dari algoritma Heap Sort dan Quick Sort dalam pemrosesan data-data
berjumlah besar.

Kata kunci: heap sort, quick sort, pengurutan data, simpul, pohon biner

1. Pendahuluan pointer tidak dibutuhkan untuk merepresentasikan
pohon, karena pohon biner yang hampir lengkap ini
Pengurutan data adalah algoritma yang meletakkan sudah dapat disimpan dalam sebuah tabel secara
elemen pada sebuah list atau tabel dengan urutan efisien.
tertentu. Algoritma pengurutan data saat ini telah
demikian banyaknya, mulai dari yang sederhana P (pohon) dapat disebut heap apabila semua
sampai yang kompleks. Untuk saat ini, algoritma simpulnya memiliki properti heap.
heap sort dan quicksort merupakan dua buah
algoritma yang dianggap terbaik. Cara kerja algoritma heap sort untuk pengurutan
Penggunaan algoritma heap sort dan quick sort data menurun :
dalam pengurutan data berbeda. Perbedaan ini Bangun pohon biner yang hampir sempurna.
dipengaruhi oleh keunggulan dan kelemahan Deklarasikan tabel penyimpanan untuk integer.
masing-masing algoritma pengurutan.

5
2. Algoritma Heap Sort dan Quick Sort
2.1 Heap Sort
Heapsort merupakan salah satu bentuk dari selection (a) Nilai dari akar dimasukkan ke ke dalam tabel
sort yang memiliki kompleksitas algorima O(n penyimpanan.
log(n)) yang menggunakan struktur data heap.
Algoritma ini bekerja dengan menentukan elemen
terbesar (atau terkecil) dari sebuah daftar elemen,
dan diletakkan pada akhir (atau awal) dari daftar
tersebut. Heap sort menyelesaikan sebuah 5
pengurutan menggunakan struktur data yang disebut
heap.

Heap merupakan sebuah pohon biner hampir
(b) Nilai daun dari level terdalam dimasukkan ke
lengkap dimana isi dari simpul ayah selalu lebih
akar, hapus daun tersebut
besar dari isi simpul anak-anaknya sehingga simpul
akar selalu merupakan elemen terbesar.
Kumpulan elemen yang akan diurutkan disimpan
sebagai isi dari pohon biner. Pada implementasinya,

1

maka nilai simpul akar dan tabel. Kasus rata-rata (average case) Kasus ini terjadi jika pivot dipilih secara acak dari Gambar a-b-c-d-e: Menghapus elemen terbesar elemen tabel. nilai simpul yang lebih besar tadi ditukar. Dalam menganalisa sebagai pivot. (f) Ulangi langkah (a) dan seterusnya 3.kestabilan Untuk itu kami akan mencoba membahas kedua < pivot > pivot > pivot buah algoritma ini dari ketiga segi ini. dapat dilakukan dengan meneliti tersebut terurut.2 Quick Sort Quick sort adalah algoritma yang menggunakan 3. 3. (d) Bandingkan nilai simpul di level berikutnya dengan anak kiri dan kanannya. hingga elemen algoritma sorting. Penyelesaian : tukar nilai di simpul ayah dan anak. disimpan di-array yang baru (terurut menurun) Kompleksitas waktunya: Tavg(n) = O(n 2log n). 2. beberapa hal berikut ini : < pivot pivot > pivot . < pivot dan > pivot. Kompleksitas waktu Untuk algoritma pengurutan data. yaitu algoritma 2 . Perbandingan Heap Sort dan Quick Sort metode divide and qonquer yaitu dengan mempartisi Setiap algoritma pastinya memiliki kelebihan dan tabel dengan acuan elemen tabel yang dijadikan kekurangannya masing-masing. (e) Terbentuk pohon biner hampir lengkap kembali Kompleksitas waktu pengurutan: Penyelesaian: T(n) = T(n – 1) + cn = O(n2). 5 2. Pivot dipilih secara acak dari salah satu elemen atau kanan lebih besar.penggunaan memori .1. Pivot = elemen pertama/elemen terakhir/elemen (c) Bandingkan nilai simpul akar dengan nilai tengah tabel simpul anak kiri dan kanannya.kompleksitas waktu . kompleksitas waktu yang paling ideal adalah O(n). dan peluang setiap elemen dipilih (namun tetap menjaga struktur heap) dan kemudian menjadi pivot adalah sama. Salah satu hal yang menentukan keoptimalan 5 algoritma quick sort adalah pemilihan elemen tabel yang akan dijadika pivot. Kasus terburuk (worst case) Kasus ini terjadi bila pada setiap partisi pivot selalu elemen maksimum (atau elemen minimum) tabel. Bila lebih besar. Cara pemilihan pivot : 1. bila nilai akar kiri 2. Kasus terbaik (best case) 5 Kasus terbaik terjadi bila pivot adalah elemen median sedemikian sehingga kedua upatabel berukuran relatif sama setiap kali pempartisian. Tabel dipartisi menjadi tabel dengan kelebihan dan kekurangan dari 2 (dua) buah elemen pivot. pivot pivot 3. T(n) = 2T(n/2) + cn = na + cn 2log n = O(n 2 log n). Pivot = elemen median tabel Kompleksitas Algoritma: 1.

terdapat suatu proses Namun untuk quicksort. pada heap setelah proses tersebut terjadi. dengan kasus rata-rata. Kamus tidak terlalu menjadi masalah. 3.de] dengan memori yang relatif kecil. menyebabkan algoritma ini menjadi [linux. atau swap space. seringkali penggunaan dibagi-bagi. [Rinaldi Munir. dalam praktiknya. yang berbeda dari yang kita ketahui sehari-hari. belum ada algoritma yang mampu anaknya. Saat ini. algoritma heap sort lebih baik daripada algoritma quicksort. urutan awal sudah sort. sehingga pemrosesannya menjadi jauh lebih lambat. 6.3 Kestabilan kompleksitas waktu O(n log n) merupakan kompleksitas algoritma sorting yang paling Stabil yang dimaksudkan di sini memiliki pengertian mendekati algoritma pengurutan ideal yaitu O(n). untuk Pohon biner hampir sempurna : pohon biner komputer dengan memori yang kecil. heap sort lebih baik 3. sangat besar. Untuk komputer dengan memori yang cukup tinggi. yang hanya mengharuskan nilai pada simpul ketidakcukupan memori yang dimilikinya haruslah ayah lebih besar dari simpul anak. ini. Algoritma ini memang memiliki performa yang cukup bagus ketika memori komputernya cukup. Diktat Kuliah Strategi Algoritmik. Kesimpulan Dari penjelasan yang kami sebutkan di atas. pada kasus terburuknya dimana seluruh elemen diubah posisinya. berikut ini ditampilkan tabel mengambil beberapa kesimpulan sebagai berikut: kompleksitas untuk kedua algoritma : a.inf. Namun.wikipedia. Untuk pengurutan data di lingkungan Quicksort O(nlog(n)) O(nlog(n)) O(n2) implementasi yang memiliki memori berkapasitas kecil. memiliki kelemahan dalam hal diurutkan. maka setelah diurutkan sama yaitu O(n log n). peletakan pada ditanggung dengan menggunakan memori dari disk simpul anak kiri atau kanan tidak berpengaruh. algoritma data-data tersebut haruslah berada dengan urutan quicksort memiliki kecepatan pemrosesan yang lebih yang sama. penggunaan aras yang besar mungkin 5. sehingga memiliki kompleksitas O(n2).edu] tidak efisien ketika dijalankan di dalam komputer [http://www. karena pemrosesan datanya dilakukan bagian per bagian.2 Penggunaan Memori karena menggunakan memori yang lebih sedikit. dalam pemrosesannya. merupakan algoritma banyak daripada quicksort. Penyebabnya adalah algoritma heapsort membutuhkan tahapan-tahapan yang lebih Kedua buah algoritma ini. tidak seperti quicksort yang algoritma pengurutan memerlukan aras (array) yang mengambil langsung seluruh senarai. terlalu memakan memori. Departemen teknik Informatika ITB : Sebaliknya. bila sebelum diurutkan terdapat dua atau lebih data dengan nilai Walaupun memiliki kompleksitas algoritma yang pembandingnya yang sama.wku. yaitu O(n log n). secara rata-rata adalah sama. Kedua algoritma pengurutan ini merupakan algoritma pengurutan terbaik karena memiliki kompleksitas algoritma O(n log n) Algoritma Terbaik Rata-rata Terburuk yang mendekati kompleksitas waktu ideal. yang tidak stabil. baik dari heap sort. kompleksitas untuk kasus terburuknya sama tidak diketahui lagi. Sedangkan. Penyebabnya adalah dalam masing-masing algoritma.pengurutan hanya dengan 1 kali pass saja. Isi simpul atau nilai simpul : nilai yang ada dalam simpul berupa elemen data yang akan Algoritma quicksort. 4.com] metoda rekursif untuk mengopi sebagian atau seluruh aras. merupakan sebuah struktur data yang tidak untuk mencapai keadaan ini. Referensi Namun karena metodanya yang menggunakan [www. Kompleksitas waktu dari kedua algoritma ini.fh-flensburg. algoritma pengurutan data dengan heap 2004. kami Untuk lebih jelasnya.] sort justru memiliki keunggulan. yang secara merupakan struktur data pohon biner 3 . Struktur data heap. karena pemrosesan datanya yang Dalam penerapannya. Hal inilah yang menyebabkan kedua buah algoritma Algoritma pengurutan data disebut stabil apabila ini dipandang sebagai yang terbaik saat ini. yaitu O(n log n). Jadi pada kasus terburuk. Namun dimana elemen parent selalu lebih besar dari kedua sampai saat ini. Heapsort O(nlog(n)) — O(nlog(n)) b.