My first Magazine pemrograman-kompetitif-dasar | Page 40

3 Pencarian dan Pengurutan Persoalan ini meminta kita melakukan pengurutan N bilangan dengan rentang datanya antara 1 sampai 100.000. Terdapat sejumlah algoritma pengurutan, yang akan dibahas pada bagian berikutnya. 3.2.1 Bubble Sort Kita dapat melakukan bubble sort dengan memproses setiap pasang elemen yang bersebe- lahan satu per satu. Mulai dari elemen pertama, cek apakah elemen sesudahnya (yaitu elemen kedua) lebih kecil. Bila ya, artinya elemen pertama ini harus terletak sesudah elemen kedua. Untuk itu, lakukan penukaran. Bila tidak, tidak perlu lakukan penukaran. Lanjut periksa elemen kedua, ketiga, dan seterusnya. Proses ini mengakibatkan elemen dengan nilai terbesar pasti digiring ke posisi terakhir seperti pada Gambar 3.7. 4 3 3 3 3 3 3 4 2 2 2 2 2 2 4 4 4 4 8 8 8 8 5 5 5 5 5 5 8 3 3 3 3 3 3 8 ditukar tidak ditukar Gambar 3.7: Ilustrasi penggiringan elemen terbesar ke posisi terakhir. Bila proses ini dilakukan lagi, maka elemen kedua terbesar akan terletak di posisi kedua dari terakhir. Kali ini pemeriksaan cukup dilakukan sampai 1 elemen sebelum posisi terakhir, sebab elemen terakhir sudah pasti tidak akan berubah posisi. 3 2 2 2 2 2 3 3 3 3 4 4 4 4 4 5 5 5 5 3 3 3 3 3 5 8 8 8 8 8 ditukar tidak ditukar Gambar 3.8: Ilustrasi penggiringan elemen kedua terbesar ke posisi kedua dari akhir. Demikian pula untuk eksekusi yang ketiga kalinya, yang kebetulan data sudah menjadi terurut seperti pada Gambar 3.9. 30