Contoh Program Bubble Sort pada C++
Bubble Sort adalah salah satu algoritma pengurutan sederhana yang bekerja dengan cara membandingkan setiap pasangan elemen yang berdekatan dan menukarnya jika elemen tersebut tidak berada dalam urutan yang benar. Proses ini diulangi hingga tidak ada lagi elemen yang perlu ditukar.
Berikut adalah contoh implementasi algoritma Bubble Sort dalam bahasa pemrograman C++.
Program Bubble Sort pada C++
#include <iostream>
using namespace std;
// Fungsi untuk melakukan Bubble Sort
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
// Loop untuk membandingkan elemen
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// Menukar elemen jika tidak dalam urutan yang benar
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// Fungsi untuk mencetak array
void printArray(int arr[], int n) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
// Fungsi utama
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Array sebelum diurutkan: ";
printArray(arr, n);
bubbleSort(arr, n);
cout << "Array setelah diurutkan: ";
printArray(arr, n);
return 0;
}
Penjelasan Program
- Deklarasi Array: Array arr[] diinisialisasi dengan beberapa nilai yang belum terurut.
- Fungsi bubbleSort:
- Fungsi ini menggunakan dua loop for:
- Loop pertama untuk menentukan jumlah iterasi.
- Loop kedua untuk membandingkan dan menukar elemen jika elemen di posisi kiri lebih besar dari elemen di posisi kanan.
- Setelah setiap iterasi, elemen terbesar "menggelembung" (bubble up) ke posisi terakhir.
- Fungsi printArray: Fungsi ini digunakan untuk mencetak elemen dalam array sebelum dan sesudah diurutkan.
- Output: Program mencetak array sebelum dan setelah diurutkan menggunakan algoritma Bubble Sort.
Output Program
Jika kode di atas dijalankan, hasilnya adalah sebagai berikut:
Array sebelum diurutkan: 64 34 25 12 22 11 90
Array setelah diurutkan: 11 12 22 25 34 64 90
Kelebihan dan Kekurangan Bubble Sort
Kelebihan:
- Mudah dipahami dan diimplementasikan.
- Cocok untuk array kecil atau data yang hampir terurut.
Kekurangan:
- Tidak efisien untuk data yang besar karena kompleksitas waktu sebesar O(n2)O(n^2).
Dengan memahami program ini, Anda bisa mempelajari cara kerja dasar algoritma pengurutan dan mengembangkannya lebih lanjut untuk kasus yang lebih kompleks. Semoga bermanfaat! 😊