Bubble Sort C++

4 min read Jul 01, 2024
Bubble Sort C++

Bubble Sort dalam C++

Bubble Sort adalah salah satu algoritma pengurutan yang paling sederhana. Algoritma ini bekerja dengan membandingkan elemen-elemen yang berdekatan dalam array dan menukar posisi mereka jika tidak dalam urutan yang benar. Proses ini berulang hingga semua elemen dalam array terurut.

Cara Kerja Bubble Sort

  1. Iterasi Melalui Array: Algoritma memulai dengan iterasi melalui array dari awal hingga akhir.
  2. Membandingkan Elemen Berdekatan: Pada setiap iterasi, elemen yang berdekatan dibandingkan. Jika elemen pertama lebih besar dari elemen kedua, keduanya ditukar.
  3. Pengulangan: Proses perbandingan dan penukaran diulang untuk semua elemen dalam array.
  4. Iterasi Berikutnya: Setelah iterasi pertama, elemen terbesar akan berada di posisi terakhir. Iterasi selanjutnya akan mengulangi proses perbandingan dan penukaran, tetapi hanya untuk elemen-elemen sebelum elemen terbesar.
  5. Berhenti: Proses ini berulang hingga tidak ada lagi penukaran yang terjadi dalam satu iterasi, yang menunjukkan bahwa array telah terurut.

Implementasi Bubble Sort dalam C++

Berikut adalah implementasi kode Bubble Sort dalam C++:

#include 

using namespace std;

void bubbleSort(int arr[], int n) {
  int i, j;
  for (i = 0; i < n - 1; i++) {
    for (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;
      }
    }
  }
}

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;
}

Kode ini melakukan hal berikut:

  1. Deklarasikan fungsi bubbleSort yang menerima array dan ukuran array sebagai input.
  2. Dua loop for digunakan untuk mengulang setiap elemen dalam array. Loop luar berulang n-1 kali, sedangkan loop dalam berulang n-i-1 kali.
  3. Di dalam loop dalam, elemen yang berdekatan dibandingkan. Jika elemen pertama lebih besar dari elemen kedua, keduanya ditukar.
  4. Fungsi main mendeklarasikan sebuah array, memanggil fungsi bubbleSort, dan mencetak array sebelum dan sesudah diurutkan.

Kelebihan dan Kekurangan Bubble Sort

Kelebihan:

  • Sederhana: Mudah dipahami dan diimplementasikan.
  • In-place: Algoritma tidak membutuhkan memori tambahan untuk mengurutkan.

Kekurangan:

  • Tidak efisien: Algoritma memiliki kompleksitas waktu O(n^2), yang membuatnya lambat untuk array yang besar.
  • Tidak stabil: Algoritma dapat mengubah urutan relatif elemen yang memiliki nilai yang sama.

Kesimpulan

Bubble Sort adalah algoritma pengurutan yang sederhana, tetapi tidak efisien untuk array yang besar. Algoritma ini paling cocok untuk array kecil atau sebagai titik awal untuk mempelajari algoritma pengurutan lainnya. Untuk array yang besar, algoritma pengurutan yang lebih efisien seperti Merge Sort atau Quick Sort lebih direkomendasikan.