ALGORITHMA INSERTION SORT DAN IMPLEMENTASINYA DALAM BAHASA JAVA

     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 :)

Komentar

Posting Komentar