Sorting merupakan proses mengurutkan atau menyusun kembali elemen-elemen dengan urutan tertentu dan proses pengurutan tersebut diimplementasikan ke beberapa macam aplikasi.
biasanya sorting atau algoritma pengurutan pada java sering kita temui pada berbagai aktifitas, seperti pada project atau tugas yang difungsikan untuk mengurutkan Nim, Nama Mahasiswa, Kota dan lainya.
Dalam pemrograman Java terdapat beberapa algoritma sorting yang biasa digunakan yakni antara lain:
a. Bubble Sort
Bubble sort
(metode gelembung) adalah metode pengurutan dengan dengan cara melakukan penukaran data
dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam
satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan
berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing
kunci akan dengan lambat menggelembung ke posisinya yang tepat.
b. Exchange Sort
Melakukan
pembandingan antara data, dan melakukan pertukaran apabila urutan yang
didapat belum sesuai. Bisa dikatakan Bubble sort sama dengan Exchange Sort karena kedua metode ini melakukan pertukaran berulang-ulang terhadap elemen data yang belum diurutkan.
didapat belum sesuai. Bisa dikatakan Bubble sort sama dengan Exchange Sort karena kedua metode ini melakukan pertukaran berulang-ulang terhadap elemen data yang belum diurutkan.
c. Selection Sort
Algoritma
selection sort adalah mencari elemen yang tepat untuk diletakkan di posisi yang
telah diketahui, dan meletakkannya di posisi tersebut setelah data tersebut
ditemukan. Selection Sort membandingkan elemen yang sekarang dengan elemen yang
berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang
lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukar.
d. Heap Sort
Heap sort
merupakan salah satu bentuk dari selection sort yang memiliki kompleksitas
algorima O(n 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 pengurutan menggunakan struktur data yang disebut heap.
Heap merupakan sebuah pohon biner hampir lengkap dimana isi dari simpul ayah
selalu lebih besar dari isi simpul anak-anaknya sehingga simpul akar selalu
merupakan elemen terbesar.
e. Insertion Sort
Algoritma
insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua
bagian, yang belum diurutkan (meja pertama), dan yang telah diurutkan (meja
kedua). Elemen pertama yang diambil dari bagian array yang belum diurutkan dan
kemudian diletakkan pada posisinya sesuai dengan bagian lain dari array yang
telah diurutkan. langkah ini dilakukan secara berulang hingga tidak ada lagi
elemen yang tersisa pada bagian array yang belum diurutkan.
f. Quick Sort
Pengurutan ini
berdasar pada prinsip devide and conquer. Devide adalah suatu langkah memilah
masalah menjadi sub – masalah dalam proses rekursi, sedangkan conquer adalah
proses menyelesaikan sub masalah tersebut, kemudian dilakukan pendekatan
terhadap masalah utama. Pada dasarnya prinsip kerjanya adalah membagi atau
memartisi sekumpulan data menjadi dua bagian sedemikian rupa sehingga elemen
ke-i berada tepat pada posisisnya, dimana semua elemen yang nilainya lebih
kecil daripada elemen ke-i akan terletak disebelah kirinya, sedangkan yang
mempunyai nilai lebih besar berada disebelah kanannya. Algoritma ini memiliki
kompleksitas O(n log n).
g. Merge Sort
Merupakan salah
satu teknik sorting yang mengurutkan suatu data dengan cara penggabungan. Merge
sort juga menggunakan proses divide and conquer pada rekursi. Berikut adalah
langkah kerja merge sort :
Devide : Memilah
elemen – elemen dari data menjadi dua bagian.
Conquer :
Menyelesaikan setiap bagian dengan memanggil prosedur merge sort secara
rekursif.
Kombinasi : Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan.
Kombinasi : Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan.
Proses rekursi
akan berhenti jika telah mencapai elemen dasar, atau artinya jika bagian yang
diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut
menandakan bahwa bagian tersebut telah sesuai rangkaian.
h. Shell Sort
Algoritma ini
memiliki kesamaan cara kerja dengan insertion sort, yaitu membandingkan
elemen-elemen dengan jarak tertentu. Insertion sort membandingkan elemen–elemen
data yang berdekatan (berjarak satu posisi), sedangkan shell sort membandingkan
elemen berjarak tertentu, misalnya elemen yang berjarak 5 posisi atau 2 posisi
dan pada akhirnya akan selesai pada pengurutan data yang berjarak 1 posisi.
Namun nilai ini haruslah dicari sedemikian rupa agar tidak menulangi atau
merusak hasil sorting sebelumnya.
0 komentar:
Posting Komentar