Kode Program C++: Mengurutkan Angka (Algoritma Bubble Sort)

Posted on

Kode Program C++: Mengurutkan Angka (Algoritma Bubble Sort)

Mengurutkan Angka dengan Algoritma Bubble Sort dalam C++

Pengurutan angka merupakan salah satu operasi dasar dalam pemrograman. Dalam artikel ini, kita akan membahas tentang algoritma bubble sort, salah satu algoritma pengurutan yang paling sederhana dan mudah dipahami. Kita akan membahas cara kerja algoritma bubble sort, contoh penerapannya, permasalahan yang mungkin muncul, dan solusi untuk permasalahan tersebut dalam bahasa pemrograman C++.

Cara Kerja Algoritma Bubble Sort

Algoritma bubble sort bekerja dengan cara membandingkan elemen-elemen dalam array satu per satu dan menukarnya jika urutannya tidak benar. Algoritma ini dimulai dengan membandingkan elemen pertama dan kedua dalam array. Jika elemen pertama lebih besar dari elemen kedua, maka kedua elemen tersebut ditukar. Kemudian, elemen kedua dan ketiga dibandingkan dan ditukar jika urutannya tidak benar. Proses ini terus berlanjut hingga elemen terakhir dalam array dibandingkan dengan elemen sebelumnya.

Setelah satu lintasan selesai, algoritma bubble sort akan memulai lintasan berikutnya dari awal array lagi. Hal ini dilakukan hingga tidak ada lagi pertukaran yang terjadi pada lintasan tertentu. Pada saat itu, berarti array telah terurut secara lengkap.

Contoh Penerapan Algoritma Bubble Sort dalam C++

Berikut adalah contoh sederhana bagaimana menerapkan algoritma bubble sort dalam bahasa pemrograman C++:

#include <iostream>
#include <vector>

using namespace std;

void bubbleSort(vector<int>& arr) {
  int n = arr.size();
  bool swapped;

  do {
    swapped = false;
    for (int i = 0; i < n - 1; i++) {
      if (arr[i] > arr[i + 1]) {
        swap(arr[i], arr[i + 1]);
        swapped = true;
      }
    }
  } while (swapped);
}

int main() {
  vector<int> arr = {5, 3, 1, 2, 4};

  bubbleSort(arr);

  for (int i = 0; i < arr.size(); i++) {
    cout << arr[i] << " ";
  }

  cout << endl;

  return 0;
}

Pada contoh di atas, kita memiliki sebuah vektor arr yang berisi angka-angka yang belum terurut. Fungsi bubbleSort() dipanggil untuk mengurutkan angka-angka dalam vektor tersebut. Fungsi bubbleSort() bekerja dengan cara yang telah dijelaskan sebelumnya. Setelah fungsi bubbleSort() selesai, angka-angka dalam vektor arr akan terurut secara lengkap.

Permasalahan yang Mungkin Muncul dan Solusinya

Salah satu permasalahan yang mungkin muncul saat menggunakan algoritma bubble sort adalah adanya worst case scenario, di mana algoritma bubble sort harus melakukan banyak sekali pertukaran untuk mengurutkan array. Hal ini dapat terjadi jika array yang akan diurutkan sudah sangat tidak teratur.

Untuk mengatasi permasalahan tersebut, kita dapat menggunakan variasi dari algoritma bubble sort yang disebut cocktail shaker sort. Algoritma cocktail shaker sort bekerja dengan cara mengurutkan array dari awal hingga akhir dan kemudian dari akhir hingga awal secara bergantian. Hal ini dapat mengurangi jumlah pertukaran yang dilakukan oleh algoritma bubble sort pada worst case scenario.

Berikut adalah contoh sederhana bagaimana menerapkan algoritma cocktail shaker sort dalam bahasa pemrograman C++:

#include <iostream>
#include <vector>

using namespace std;

void cocktailShakerSort(vector<int>& arr) {
  int n = arr.size();
  bool swapped;

  do {
    swapped = false;

    // Iterate from left to right
    for (int i = 0; i < n - 1; i++) {
      if (arr[i] > arr[i + 1]) {
        swap(arr[i], arr[i + 1]);
        swapped = true;
      }
    }

    // Iterate from right to left
    for (int i = n - 2; i >= 0; i--) {
      if (arr[i] > arr[i + 1]) {
        swap(arr[i], arr[i + 1]);
        swapped = true;
      }
    }
  } while (swapped);
}

int main() {
  vector<int> arr = {5, 3, 1, 2, 4};

  cocktailShakerSort(arr);

  for (int i = 0; i < arr.size(); i++) {
    cout << arr[i] << " ";
  }

  cout << endl;

  return 0;
}

Pada contoh di atas, kita menggunakan algoritma cocktail shaker sort untuk mengurutkan angka-angka dalam vektor arr. Algoritma cocktail shaker sort bekerja dengan cara yang telah dijelaskan sebelumnya. Setelah algoritma cocktail shaker sort selesai, angka-angka dalam vektor arr akan terurut secara lengkap.

Kesimpulan

Algoritma bubble sort merupakan algoritma pengurutan yang sederhana dan mudah dipahami. Namun, algoritma ini memiliki worst case scenario di mana harus melakukan banyak sekali pertukaran untuk mengurutkan array. Untuk mengatasi permasalahan tersebut, kita dapat menggunakan variasi dari algoritma bubble sort yang disebut cocktail shaker sort. Algoritma cocktail shaker sort dapat mengurangi jumlah pertukaran yang dilakukan oleh algoritma bubble sort pada worst case scenario.

Leave a Reply

Your email address will not be published. Required fields are marked *