Algoritma insertion sort ini merupakan algoritma sederhana
yang cukup efisien untuk mengurutkan sebuah list yang hampir terurut. Algoritma
ini juga bisa digunakan sebagai bagian dari algoritma yang lebih canggih. Cara
kerja algoritma ini adalah dengan mengambil elemen list satu-per-satu dan
memasukkannya di posisi yang benar.
Untuk menghemat memori implementasinya menggunakan
pengurutan di tempat yang membandingkan elemen saat itu dengan elemen
sebelumnya yang sudah diurut, lalu menukarnya terus sampai posisinya tepat. Hal
ini terus dilakukan sampai tidak ada elemen tersisa di input.
Ilustrasi dari algoritma ini dapat anda lihat pada gambar
berikut :
input array : 7 -5 2 16 4
Algoritma ini memiliki beberapa kelebihan dan kekurangan
antaralain :
Keuntungan
1. Implementasi yang sederhana.
2. Paling efisien untuk data berukuran kecil.
3. Merupakan online algorithmic yang berarti bisa langsung
melakukan sort setiap ada
data baru.
4. Stabil.
Kekurangan
1. Tidak cocok untuk data yang besar.
Implementasinya dalam bahasa pemrograman
sbb :
public class insertionSort {
int[]
angka={7,-5,2,16,4};
public
insertionSort() //konstruktor
{
tampilkanAngka();
//menampilkan angka awal
InsertionSort();
//proses insertion sort
tampilkanAngka();
//menampilkan angka hasil
}
void tampilkanAngka() {
for
(int i=0; i) {
System.out.print(angka[i]+"
");
}
System.out.println("\n--------------------------------");
}
void InsertionSort() //method
insertion sort
{
int
i, j, nilaiBaru; //mengulang dimulai dari array ke 1 hingga max array
for
(i=1; i)
{
nilaiBaru
= angka[i];
j=i;
//terjadi proses insertion jika j>0 dan angka[j-1]>nilaiBaru
while(j>0
&& angka[j-1] > nilaiBaru){
angka[j]=angka[j-1];
j--;
}
angka[j]=nilaiBaru;
}
}
//method main
public static void main(String[]
aksi) {
insertionSort
urut = new insertionSort();
}
}
}
Semoga penjelasan yang saya berikan dapat membantu anda memahami dan menjalankan program pada java.
Terima Kasih telah mengunjungi blog saya :)
Coding macam apa ini error gan.. pada pendeklarasian For.
BalasHapus