2. Pendahuluan
Sesuai dengan namanya, bubble sort membuat elemen
yang dibandingkan berlaku seperti gelembung atau
dinaikkan.
Metode sorting mengiterasi dan mebandingkan 2 elemen
setiap iterasi dan mengubah posisi elemen yang
dibandingkan dimana elemen yang lebih besar akan
ditukar posisinya ke indeks yang lebih akhir.
5. Proses - 3
2 5 1 6 7 4 3 8 → Mulai lagi dari awal
→ Perhatikan bahwa
kotak yang tebal sudah
terurut
→ lakukan sampai semua
terurut
2 1 5 6 4 3 7 8
1 2 3 4 5 6 7 8
6. Pseudocode
procedure bubbleSort( Input/Output A : list of sortable items )
n = length(A)
repeat
swapped = false
for (i = 0 to n-1) do /* elemen pertama memiliki indeks 0 */
begin
/* jika pasangan tidak sesuai */
if A[i-1] > A[i] then
begin
/* tukar posisinya dan nilai swap diingat menjadi true */
swap( A[i-1], A[i] )
swapped = true
end
end
until not swapped /* lakukan sampai tidak ada yang ingin ditukar */
7. Contoh Kode C++
void bubbleSort(int arr[], int size) {
bool not_sorted = true;
int j=1,tmp;
while (not_sorted) {
not_sorted = false;
j++;
for (int i = 0; i < size - j; i++) {
if (arr[i] > arr[i + 1]) {
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
not_sorted = true;
} // selesai proses tukar
print_array(arr,5); // cetak array
}
}
}
8. Contoh Kode C++ - lanjut
#include <iostream>
#include <array>
using namespace std;
void print_array(int array[], int size) {
cout << "langkah bubble sort: ";
int j;
for (j=0; j<size;j++)
cout <<" "<< array[j];
cout << endl;
} //end of print_array
9. Contoh Kode C++ - lanjut 2
int main() {
int arrBil[5] = {3,5,2,1,4};
bubbleSort(arrBil, 5); // akan menanmpilkan hasil bubble sort
// dengan print array tiap langkah
return 0;
}