Cara Kerja Algoritma Bubble Sort
Bubble sort adalah salah satu algoritma pengurutan sederhana yang bekerja dengan cara berulang kali menukar pasangan elemen yang tidak berurutan hingga seluruh array diurutkan.
Penamaan "Bubble" pada teknik sorting atau sinking sort ini karena nilai yang lebih kecil secara bertahap akan “menggelembungkan” ke atas hingga ke bagian atas array (indkes ke-0) seperti gelembung udara yang naik di dalam air, sedangkan nilai yang lebih besar tenggelam ke bagian bawah array (indeks ke N-1).
Langkah Algoritma Bubble Sort:
Misalnya kita akan mengurutkan suatu array a dengan nilai setiap elemennya adalah {28, 5, 13, 25, 10} menggunakan algoritma Bubble Sort. Pada setiap lintasan, pasangan elemen yang berurutan (a[0] dengan a[1], kemudian a[1] dengan a[2], dst.) akan dibandingkan. Untuk urutan menaik (ascending), jika suatu pasangan elemen pertama lebih besar dari elemen kedua (a[i] > a[i+1]), maka kedua elemen ditukar. Namun jika tidak maka dibiarkan saja.
Perhatikan kode program berikut!
1. #include <stdio.h>
2. #define SIZE 5
3.
4. int main() {
5. int a[ SIZE ] = { 28, 14, 13, 35, 20 };
6. int lintasan, i, hold;
7.
8. // Cetak array a sebelum diurutkan
9. for (i = 0; i< SIZE; i++){
10. printf("%d ",a[i]);
11. }
12.
13. // Proses Pengurutan Bubble - Sort
14. // pengulangan untuk jumlah pass
15. for ( lintasan = 1; lintasan < SIZE; lintasan++ ) {
16.
17. // pengulangan untuk perbandingan setiap lintasan
18. for (i=0;i<SIZE-1;++i){
19. // badingkan setiap elemen yang bersebelahan,
20. //jika elemen pertama lebih besar maka tukar
21. if(a[i] > a[i+1]){
22. hold=a[i];
23. a[i]= a[i+1];
24. a[i+1] = hold;
25. } //endif
26. } // end inner for
27. } // end outer for
28.
29. // Cetak array a setelah diurutkan
30. for (i = 0; i< SIZE; i++){
31. printf("%d ",a[i]);
32. }
33.
34. return 0;
35. }
Penjelasan kode program:
- Baris 4 - 6: Mencetak elemen array a sebelum diurutkan
- Baris 15: Pengulangan luar untuk mengurutkan sebanyak 1 - SIZE lintasan
- Baris 18: Pengulangan dalam untuk membandingkan setiap pasangan elemen bersebelahan sebanyak 0 - SIZE-1
- Baris 21: Pengecekan, apabila elemen pertama lebih besar dari elemen berikutnya, maka lakukan penukaran pada baris 22 - 24
- Baris 30 - 32: Mencetak elemen array a setelah diurutkan
Berikut ini cara kerja setiap pengulangan pada kode program pengurutan Bubble Sort di atas.
Untuk lebih memahami, silakan tuliskan kode program di atas kemudian jalankan. Apakah output sesuai dengan yang diharapkan?