Pengurutan Array dengan Bubble Sort dalam C++
Bubble sort adalah algoritma pengurutan sederhana yang bekerja dengan membandingkan elemen-elemen yang berdekatan dalam array dan menukarnya jika tidak dalam urutan yang diinginkan. Algoritma ini berulang kali melakukan proses ini sampai semua elemen terurut.
Cara Kerja Bubble Sort
- Perulangan: Algoritma melakukan perulangan melalui array dari awal hingga akhir.
- Perbandingan: Dalam setiap iterasi, algoritma membandingkan dua elemen berdekatan.
- Penukaran: Jika elemen pertama lebih besar dari elemen kedua (jika pengurutan dilakukan dalam urutan menaik), kedua elemen tersebut ditukar.
- Ulangi: Proses perbandingan dan penukaran diulang untuk setiap pasang elemen berdekatan dalam array.
- Iterasi: Algoritma melakukan iterasi melalui array lagi, dan proses diulang hingga tidak ada penukaran yang terjadi pada satu iterasi. Ini menunjukkan bahwa array telah terurut.
Implementasi Bubble Sort dalam C++
#include
using namespace std;
void bubbleSort(int arr[], int n) {
// Perulangan luar
for (int i = 0; i < n - 1; i++) {
// Perulangan dalam untuk membandingkan dan menukar elemen
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// Penukaran elemen
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:
bubbleSort(int arr[], int n)
: Fungsi ini menerima array (arr
) dan ukurannya (n
) sebagai input.- Perulangan Luar: Perulangan luar
for
iterasi melalui array dari awal hingga akhir. - Perulangan Dalam: Perulangan dalam
for
membandingkan dan menukar elemen berdekatan. - Penukaran: Jika elemen pertama lebih besar dari elemen kedua, mereka ditukar menggunakan variabel sementara
temp
. - Fungsi
main()
: Fungsi utama ini mendeklarasikan array, mencetak array sebelum diurutkan, memanggil fungsibubbleSort()
untuk mengurutkan array, dan mencetak array setelah diurutkan.
Kompleksitas Bubble Sort
- Kompleksitas Waktu: Bubble sort memiliki kompleksitas waktu O(n^2) dalam kasus terburuk dan rata-rata. Ini berarti bahwa waktu yang dibutuhkan untuk mengurutkan array meningkat secara kuadrat dengan jumlah elemen.
- Kompleksitas Ruang: Bubble sort memiliki kompleksitas ruang O(1), karena hanya menggunakan jumlah ruang konstan tambahan.
Kekurangan Bubble Sort
- Bubble sort adalah algoritma yang relatif lambat, terutama untuk dataset besar.
- Itu tidak efisien untuk dataset yang sudah sebagian besar terurut.
Kesimpulan
Bubble sort adalah algoritma pengurutan sederhana yang mudah dipahami dan diimplementasikan, tetapi tidak efisien untuk dataset besar. Algoritma pengurutan yang lebih canggih seperti merge sort atau quick sort lebih cocok untuk dataset besar.