My first Magazine pemrograman-kompetitif-dasar | Page 43

3.2 Pengurutan 1. 2. 3. 4. Siapkan array kosong. Secara definisi, array yang kosong merupakan array terurut. Secara bertahap, sisipkan elemen baru ke dalam array yang sudah terurut tersebut. Penyisipan ini harus dilakukan sedemikian sehingga array tetap terurut. Misalnya saat ini data yang sudah terurut adalah [1, 2, 3, 8], lalu elemen yang akan disisipkan adalah 5, maka dihasilkan [1, 2, 3, 5, 8]. Prosesnya dapat digambarkan seperti pada Tabel 3.2 Tabel 3.2: Proses Pemindahan Data menjadi Terurut. Data Asal Data Terurut [4, 3, 2, 8, 5, 3] [] [3, 2, 8, 5, 3] [4] [2, 8, 5, 3] [3, 4] [8, 5, 3] [2, 3, 4] [5, 3] [2, 3, 4, 8] [3] [2, 3, 4, 5, 8] [] [2, 3, 3, 4, 5, 8] Strategi yang dapat digunakan untuk menyisipkan angka adalah meletakkan angka yang hendak disisipkan pada bagian paling belakang, lalu digiring mundur sampai posisinya tepat. Misalnya pada kasus menyisipkan angka 3 pada data [1, 2, 5, 8, 9] seperti pada Gambar 3.11 3 1 2 5 8 9 1 2 5 8 9 3 1 2 5 8 3 9 1 2 5 3 8 9 1 2 3 5 8 9 selesai Gambar 3.11: Ilustrasi penyisipan angka 3 pada data [1, 2, 5, 8, 9]. Implementasi Insertion Sort Implementasi insertion sort dapat ditemukan pada Algoritma 14. Algoritma 14 Algoritma insertion sort . 1: 2: 3: 4: 5: 6: 7: 8: 9: procedure I NSERTION S ORT (h) for i ← 1, N do pos ← i while ((pos > 1) ∧ (h[pos] < h[pos − 1])) do SWAP (h[pos], h[pos − 1]) pos ← pos − 1 end while end for end procedure . Selama belum tepat, giring ke depan 33