2. Apa itu Bubble Sort?
Bubble Sort adalah algoritma pengurutan yang bekerja dengan cara menukar elemen berdekatan apabila tidak dalam urutan yang benar. Proses ini diulang sampai tidak ada lagi pertukaran yang diperlukan.
3. Cara Kerja Bubble Sort
Cara kerja Bubble Sort bisa diilustrasikan seperti “gelembung” yang naik ke permukaan:
- Bandingkan elemen pertama dengan elemen kedua.
- Jika elemen pertama lebih besar, tukar posisi.
- Lanjutkan ke elemen berikutnya sampai akhir array.
- Ulangi langkah di atas sampai array benar-benar terurut.
4. Contoh Program Bubble Sort C++
#include <iostream>
using namespace std;
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
// Tukar elemen
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
void printArray(int arr[], int n) {
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
}
int main() {
int data[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(data)/sizeof(data[0]);
cout << "Array sebelum diurutkan: ";
printArray(data, n);
bubbleSort(data, n);
cout << "Array setelah diurutkan: ";
printArray(data, n);
return 0;
}
5. Penjelasan Kode Program
bubbleSort()
→ fungsi utama untuk melakukan proses pengurutan.for
luar → mengatur jumlah perulangan sebanyak n-1 kali.for
dalam → membandingkan setiap elemen bersebelahan.if (arr[j] > arr[j+1])
→ logika pertukaran.printArray()
→ untuk menampilkan hasil sebelum dan sesudah sorting.
6. Kompleksitas Waktu dan Ruang
- Best Case: O(n) → jika array sudah terurut.
- Worst Case: O(n²) → jika array terbalik urutannya.
- Space Complexity: O(1) → karena hanya menggunakan variabel tambahan sederhana.
7. Kesimpulan
Bubble Sort mudah dipahami dan diimplementasikan, meskipun tidak cocok untuk data besar karena performanya relatif lambat. Algoritma ini sangat cocok sebagai langkah awal mempelajari konsep sorting di pemrograman C++.
8. FAQ
Q: Apakah Bubble Sort lebih cepat dari Quick Sort?
A: Tidak, Bubble Sort lebih lambat karena kompleksitasnya O(n²), sedangkan Quick Sort rata-rata O(n log n).
Q: Kapan sebaiknya menggunakan Bubble Sort?
A: Bubble Sort cocok digunakan untuk dataset kecil dan tujuan pembelajaran algoritma dasar.
Q: Bisa tidak Bubble Sort digunakan untuk string?
A: Bisa, asalkan string dibandingkan dengan metode lexicographical (kamus).