Bubble Sort dalam Bahasa C++
Bubble Sort adalah algoritma pengurutan sederhana yang membandingkan elemen-elemen yang berdekatan dalam array dan menukarnya jika tidak dalam urutan yang benar. Algoritma ini berulang melalui array, membandingkan setiap pasangan elemen yang berdekatan. Jika elemen pertama lebih besar daripada elemen kedua, keduanya ditukar. Proses ini berulang sampai seluruh array terurut.
Kode C++ untuk Bubble Sort
Berikut adalah contoh kode C++ untuk mengimplementasikan algoritma Bubble Sort:
#include
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 jika tidak terurut
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Array sebelum diurutkan: \n";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
bubbleSort(arr, n);
cout << "\nArray setelah diurutkan: \n";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
Penjelasan Kode:
-
Deklarasi Fungsi: Fungsi
bubbleSort()
menerima arrayarr[]
dan ukurannyan
sebagai input. -
Loop Luar: Loop luar
for
berulangn-1
kali, di manan
adalah ukuran array. Setiap iterasi loop luar memastikan bahwa elemen terbesar ditempatkan di posisi yang benar. -
Loop Dalam: Loop dalam
for
berulangn-i-1
kali. Loop ini membandingkan elemen yang berdekatan dalam array dan menukarnya jika tidak dalam urutan yang benar. -
Penukaran Elemen: Jika elemen pertama lebih besar daripada elemen kedua, keduanya ditukar menggunakan variabel
temp
. -
Fungsi Utama: Fungsi
main()
menginisialisasi array, memanggil fungsibubbleSort()
untuk mengurutkan array, dan mencetak array yang diurutkan.
Keuntungan dan Kerugian
Keuntungan:
- Mudah dipahami dan diimplementasikan: Algoritma ini sederhana dan mudah dipahami.
- Kode yang ringkas: Implementasinya relatif singkat.
Kerugian:
- Tidak efisien: Bubble Sort adalah algoritma pengurutan yang lambat, khususnya untuk dataset yang besar. Kompleksitas waktunya adalah O(n^2), yang berarti waktu yang dibutuhkan untuk mengurutkan meningkat secara kuadrat seiring dengan peningkatan ukuran dataset.
- Tidak praktis untuk dataset yang besar: Bubble Sort tidak praktis untuk digunakan pada dataset yang besar karena kompleksitas waktunya yang tinggi.
Kesimpulan
Bubble Sort adalah algoritma pengurutan dasar yang mudah dipahami dan diimplementasikan. Namun, algoritma ini tidak efisien untuk dataset yang besar dan tidak praktis untuk penggunaan praktis. Algoritma pengurutan yang lebih efisien seperti Merge Sort, Quick Sort, dan Heap Sort biasanya lebih disukai untuk aplikasi yang membutuhkan kinerja tinggi.