Heap Sort adalah algoritma pengurutan
data berdasarkan perbandingan, dan termasuk golongan selection sort. Walaupun
lebih lambat daripada quick sort pada kebanyakan mesin , tetapi heap sort
mempunyai keunggulan yaitu kompleksitas algoritma pada kasus terburuk adalah n
log n.
Algoritma pengurutan heap sort ini
mengurutkan isi suatu larik masukan dengan memandang larik masukan sebagai
suatu Complete Binary Tree (CBT). Setelah itu Complete Binary Tree (CBT) ini
dapat dikonversi menjadi suatu heap tree. Setelah itu Complete Binary Tree
(CBT) diubah menjadi suatu priorit y queue. Algoritma pengurutan heap dimulai
dari membangun sebuah heap dari kumpulan data yang ingin diurutkan, dan
kemudian menghapus data yang mempunyai nilai tertinggi dan menempatkan dalam
akhir dari larik yang telah terurut. Setelah memindahkan data dengan nilai terbesar,
proses berikutnya adalah membangun ulang heap dan memindahkan nilai terbesar
pada heap tersebut dan menempatkannya dalam tempat terakhir pada larik terurut
yang belum diisi data lain. Proses ini
berulang sampai tidak ada lagi data yang tersisa dalam heap dan larik yang
terurut penuh. Dalam implementasinya kita membutuhkan dua larik – satu untuk
menyimpan heap dan satu lagi untuk menyimpan data yang sudah terurut. Tetapi untuk
optimasi memori, kita dapat menggunakan ha nya satu larik
saja. Yaitu dengan cara menukar isi akar dengan elemen terakhir dalam heap
tree. Jika memori tidak menjadi masalah maka dapat tetap menggunakan dua larik
yaitu larik masukan dan larik hasil.
Heap Sort memasukkan data masukan ke dalam struktur
data heap. Nilai terbesar (dalam max-heap) atau nilai terkecil (dalam min-heap)
diambil satu per satu sampai habis, nilai tersebut diambil dalam urutan yang
terurut.
Konversi array menjadi Heap. Tentukan
node terakhir dalam array, yaitu K.
0 komentar:
Posting Komentar