Memahami Bubble Sort untuk String dalam C++
Bubble Sort adalah algoritma pengurutan sederhana yang bekerja dengan membandingkan elemen berdekatan dalam array dan menukarnya jika tidak dalam urutan yang benar. Dalam konteks ini, kita akan membahas cara menggunakan Bubble Sort untuk mengurutkan string dalam bahasa pemrograman C++.
Cara Kerja Bubble Sort untuk String
Algoritma Bubble Sort untuk string bekerja dengan mengulang setiap karakter dalam string dan membandingkannya dengan karakter berikutnya. Jika karakter saat ini lebih besar dari karakter berikutnya, kedua karakter tersebut ditukar. Proses ini diulang untuk seluruh string hingga tidak ada lagi pertukaran yang terjadi, yang menandakan bahwa string telah diurutkan.
Implementasi Bubble Sort dalam C++
Berikut adalah contoh implementasi Bubble Sort untuk mengurutkan string dalam C++:
#include
#include
using namespace std;
void bubbleSortString(string &str) {
int n = str.length();
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (str[j] > str[j + 1]) {
swap(str[j], str[j + 1]);
}
}
}
}
int main() {
string str = "hello";
cout << "String sebelum diurutkan: " << str << endl;
bubbleSortString(str);
cout << "String setelah diurutkan: " << str << endl;
return 0;
}
Penjelasan Kode:
#include <iostream>
: Menyertakan pustaka input/output standar C++.#include <string>
: Menyertakan pustaka string standar C++.using namespace std;
: Memudahkan penggunaan nama-nama elemen dalam namespacestd
.void bubbleSortString(string &str)
: Deklarasi fungsibubbleSortString
yang menerima referensi stringstr
sebagai parameter.int n = str.length();
: Menentukan panjang stringstr
dan menyimpannya dalam variabeln
.for (int i = 0; i < n - 1; i++) {}
: Loop luar yang berulang dari indeks 0 hinggan - 1
.for (int j = 0; j < n - i - 1; j++) {}
: Loop dalam yang berulang dari indeks 0 hinggan - i - 1
.if (str[j] > str[j + 1]) {}
: Membandingkan karakter pada indeksj
dengan karakter pada indeksj + 1
. Jika karakter pada indeksj
lebih besar, maka kedua karakter ditukar.swap(str[j], str[j + 1]);
: Fungsiswap
digunakan untuk menukar karakter pada indeksj
danj + 1
.int main() {}
: Fungsi utama program.string str = "hello";
: Mendefinisikan stringstr
dengan nilai "hello".cout << "String sebelum diurutkan: " << str << endl;
: Menampilkan stringstr
sebelum diurutkan.bubbleSortString(str);
: Memanggil fungsibubbleSortString
untuk mengurutkan stringstr
.cout << "String setelah diurutkan: " << str << endl;
: Menampilkan stringstr
setelah diurutkan.
Kelebihan dan Kekurangan Bubble Sort
Kelebihan:
- Algoritma yang mudah dipahami dan diimplementasikan.
- Relatif efisien untuk array yang kecil.
Kekurangan:
- Kompleksitas waktu yang buruk untuk data yang besar (O(n²)).
- Tidak efisien untuk array yang sudah terurut sebagian.
Kesimpulan
Bubble Sort adalah algoritma pengurutan yang sederhana dan mudah dipahami, tetapi tidak efisien untuk data yang besar. Untuk array yang lebih besar, algoritma pengurutan lain seperti Merge Sort atau Quick Sort akan lebih cocok digunakan.