INSERTION SORT Diketahui array satu dimensi yang telah dibuat dengan int A[n] dimana n=7, elemennya sudah terisi sebagai berikut: 1 2 3 4 5 6 A[ ] 15 10 7 22 17 5 12 Susun algoritma untuk mengurutkan isi array tersebut dengan metode INSERTION SORT sehingga nilainya urut menaik (Ascending) seperti berikut: 1 2 3 4 5 6 A[ ] 5 7 10 12 15 17 22
1 2 3 4 5 6 Data Awal: 15 10 7 22 17 5 12 Tahap 1. Dimulai dari kolom A[1], x = A[1] = 10 TAHAP 1: 15 10 7 22 17 5 12 10 15 lebih besar dari 10, maka geser 15 ke kanan, proses selesai karena sudah sampai kolom 1. Kemudian insert x menggantikan 15 Mulai dari A[1] x 15 7 22 17 12 10 15 7 22 17 12 TAHAP 2: 10 15 7 22 17 5 12 7 Tahap 2. Dimulai dari kolom A[2], x= 7 Mulai dari A[2] x 15 lebih besar dari 7, maka geser 15 ke kanan, 10 lebih besar dari 7, maka geser 10 ke kanan. Proes selesai karena sudah sampai kolom 1. Kemudian insert x menggantikan 10 10 15 22 17 12 10 15 22 17 12 7 10 15 22 17 12 TAHAP 3: 7 10 15 22 17 12 22 Tahap 3. Dimulai dari kolom A[3], x=22 Mulai dari A[3] x 15 tidak lebih besar dari 22, maka proses selesai. Kemudian insert x menggantikan 22. (insert sebenarnya tak perlu dilakukan, Karena nilainya tetap sama, tapi untuk konsistensi algoritma, maka terpaksa proses insert dilakukan 7 10 15 22 17 12
Demikian seterusnya sampai tahap 6 Hasil tiap tahap dapat digambarkan sebagai berikut: 1 2 3 4 5 6 7 Data Awal: 15 10 7 22 17 5 12 1 kali move (geser) 15 ke kolom 2, 10 insert di kolom 1 TAHAP 1: 10 15 7 22 17 5 12 TAHAP 2: 7 10 15 22 17 5 12 2 kali move (geser) 15 ke kolom 3, 10 ke kolom 2, 7 insert di kolom 1 TAHAP 3: 7 10 15 22 17 5 12 0 kali tak ada move 1 kali move, 22 ke kolom 5, 17 insert di kolom 4 TAHAP 4: 7 10 15 17 22 5 12 TAHAP 5: 5 7 10 15 17 22 12 5 kali move, 22,17,15,10,7 masing- masing digeser ke kanan, 5 diinsert di kolom 1 TAHAP 6: 5 7 10 12 15 17 3 kali move, 22,17,15 masing- masing digeser ke kanan,12 diinsert di kolom1 Untuk contoh data diatas, terjadi 12 kali Geser (move) dan untuk n=7, selalu ada 6= (n-1) kali insert termasuk insert di lokasinya sendiri
Algoritma INSERTION SORT for (i=1;i<n;i++){ y=L[i]; j=i-1; a=0; while(j>=0 && !a){ if(y<L[j]){ L[j+1]=L[j]; j--; } else a=1; L[j+1]=y;