Insertion sort adalah algoritma pengurutan yang menyisipkan elemen data ke posisi yang tepat dengan cara membandingkan dua elemen pertama, kemudian elemen berikutnya satu persatu dengan yang sudah diurutkan, serta menggeser elemen yang lebih besar. Algoritma ini cocok untuk menyisipkan elemen baru ke dalam daftar yang sudah terurut.
2. Teori
Metode pengurutan Sisip {Insertion Sort }, adalah metode
pengurutan dengan cara menyisipkan elemen larik pada
posisi yang tepat. Pencarian posisi yang tepat dilakukan
dengan melakukan pencarian beruntun didalam larik.
Selama pencarian posisi yang tepat dilakukan pergeseran
elemen larik.
Algoritma pengurutan ini tepat untuk masalah menyisipkan
elemen baru kedalam sekumpulan elemen yang sudah
terurut
3. Teori pada Java
Pengertian Algoritma Insertion Sort pada java merupakan
sebuah algortima pengurutan dengan membandingkan dua
elemen data pertama, mengurutkannya, setelah itu baru
kemudian mengecek apakah elemen data berikutnya
satupersatu, kemudian akan dibandingkan lagi dengan
elemen data yang sudah diurutkan pada proses
sebelumnya.
4. Cara pengurutan dalam Insertion Sort:
Membandingkan dua elemen data pertama dan mengurutkannya.
Mengambil satu elemen data berikutnya dan membandingkannya
dengan dua elemen data pertama yang telah terurut, kemudian
mengurutkannya. Elemen data ketiga ini bisa diletakkan sebelum
elemen data pertama, setelah elemen data kedua, atau disisipkan
diantara elemen data pertama dan kedua.
Mengulang langkah kedua hingga seluruh elemen data dalam daftar
sudah diurutkan.
5. Algoritma Insertion Sort
Untuk mendapatkan larik yang terurut menaik (Ascending ), Algoritma ditulis secara Global sbb :
Untuk setiap pass ke-i =2, 3, ………., N lakukan :
1. x ← L[ i ]
2. sisipkan x pada tempat yang sesuai antara L[ 1 ] …. L[ i ]
Rincian setiap pass adalah sebagai berikut :
Di asumsikan (Pass 1) : L[ 1 ] dianggap sudah pada tempatnya
Pass 2
x = L[ 2 ] harus dicari tempatnya yang tepat pada L[1..2] dengan cara menggeser
elemen L[1..1] ke kanan (atau ke bawah, jika larik vertikal ) bila L[1..1] lebih besar dari
L[ 2 ] Misalkan posisi yang tepat adalah k sisipkan L[ 2 ] pada L[ k ]
6. Algoritma Insertion Sort
Pass 3
x = L[ 3 ] harus dicari tempatnya yang tepat pada L[1..3] dengan cara menggeser
elemen L[1..2] ke kanan (atau ke bawah, jika larik vertikal ) bila L[1..2] lebih besar dari
L[ 3 ] Misalkan posisi yang tepat adalah k sisipkan L[ 3 ] pada L[ k ]
Pass N
x = L[ N ] harus dicari tempatnya yang tepat pada L[1..N] dengan cara menggeser
elemen L[1..N-1] ke kanan (atau ke bawah, jika larik vertikal ) bila L[1..N-1] lebih
besar dari L[ N ] Misalkan posisi yang tepat adalah k sisipkan L[ N ] pada L[ k ]
Hasil dari pass N : Larik L[1..N] sudah terurut, yaitu L[1] ≤ L[2] ≤ ……..≤ L[N]
8. Contoh program insertion sort
public class insertion
{
public static void main(String args[])
{
int a[]={8,5,9,6,3,4,2,1,7,5};
for(int i=0;i<a.length;i++)
{
int min=a[i];
int j=i;
while((j>0)&&(min<a[j-1]))
{
a[j]=a[j-1];
j--;
}
a[j]=min;
}
// mencetak hasil
for(int h=0;h<a.length;h++)
{
System.out.print(a[h]+", ");
}
}
}
Hasil nya adalah: