J. E. N. I.
6.2.1 Algoritma
void insertionSort( Object array [], int startIdx, int endIdx) { for( int i = startIdx; i < endIdx; i ++) { int k = i; for( int j = i + 1; j < endIdx; j ++) { if((( Comparable) array [ k ]). compareTo( array [ j ])> 0) { k = j;
}
} swap( array [ i ], array [ k ]);
}
}
6.2.2 Sebuah Contoh
Data |
1 st Pass |
2 nd Pass |
3 rd Pass |
4 th Pass |
Mango |
Mango |
Apple |
Apple |
Apple |
Apple |
Apple |
Mango |
Mango |
Banana |
Peach |
Peach |
Peach |
Orange |
Mango |
Orange |
Orange |
Orange |
Peach |
Orange |
Banana |
Banana |
Banana |
Banana |
Peach |
Gambar 1.1.2: Contoh insertion sort
Pada akhir modul ini, anda akan diminta untuk membuat implementasi bermacam algoritma sorting yang akan dibahas pada bagian ini.
6.3 Selection Sort
Jika anda diminta untuk membuat algoritma sorting tersendiri, anda mungkin akan menemukan sebuah algoritma yang mirip dengan selection sort. Layaknya insertion sort, algoritma ini sangat rapat dan mudah untuk diimplementasikan.
Mari kita kembali menelusuri bagaimana algoritma ini berfungsi terhadap satu paket kartu. Asumsikan bahwa kartu tersebut akan diurutkan secara ascending. Pada awalnya, kartu tersebut akan disusun secara linier pada sebuah meja dari kiri ke kanan, dan dari atas ke bawah. Pilih nilai kartu yang paling rendah, kemudian tukarkan posisi kartu ini dengan kartu yang terletak pada pojok kiri atas meja. Lalu cari kartu dengan nilai paling rendah diantara sisa kartu yang tersedia. Tukarkan kartu yang baru saja terpilih dengan kartu pada posisi kedua. Ulangi langkah – langkah tersebut hingga posisi kedua sebelum posisi terakhir dibandingkan dan dapat digeser dengan kartu yang bernilai lebih rendah.
Pengenalan Pemrograman 2 2