Contoh Selection Sort C++: Algoritma dan Implementasi
Jika anda mempelajari ilmu komputer, pasti sudah tidak asing lagi dengan algoritma sorting. Salah satu algoritma sorting yang paling populer adalah selection sort.
Algoritma ini membagi data menjadi dua bagian, yaitu bagian yang sudah terurut dan yang belum terurut. Data yang belum terurut kemudian dicari nilai minimumnya dan ditukar dengan elemen terdekat di awal. Proses ini diulang hingga seluruh data terurut.
Pada artikel ini, kita akan membahas tentang contoh selection sort C++ beserta implementasinya.
Algoritma Selection Sort
Sebelum memulai implementasi selection sort, kita harus memahami algoritma selection sort terlebih dahulu. Berikut adalah langkah-langkah dalam algoritma selection sort:
- Cari nilai minimum pada data yang belum terurut.
- Tukar nilai minimum dengan elemen pertama pada data yang belum terurut.
- Data yang belum terurut dikurangi satu elemen di depannya.
- Ulangi langkah 1 hingga 3 sampai seluruh data terurut.
Implementasi Selection Sort C++
Setelah memahami algoritma selection sort, selanjutnya kita akan membahas contoh selection sort C++. Berikut adalah kode program selection sort C++:
#include <iostream>
using namespace std;
void selectionSort(int arr[], int n){
int i, j, min_idx;
for (i = 0; i < n-1; i++){
min_idx = i;
for (j = i+1; j < n; j++)
if (arr[j] < arr[min_idx])
min_idx = j;
swap(arr[min_idx], arr[i]);
}
}
void printArray(int arr[], int n){
int i;
for (i=0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
}
int main(){
int arr[] = {64, 25, 12, 22, 11};
int n = sizeof(arr)/sizeof(arr[0]);
selectionSort(arr, n);
cout << "Sorted array: \n";
printArray(arr, n);
return 0;
}
Implementasi di atas menggunakan array sebagai tipe datanya. Pada fungsi selectionSort, array diurutkan menggunakan algoritma selection sort. Fungsi printArray digunakan untuk mencetak array yang telah diurutkan.
Penjelasan Kode Program
#include <iostream>
merupakan library header yang digunakan untuk input-output stream pada C++.using namespace std;
digunakan untuk menghindari penggunaan std:: pada setiap pernyataan cout, cin, dll.void selectionSort(int arr[], int n)
adalah fungsi untuk melakukan selection sort pada array arr dengan ukuran n.int i, j, min_idx;
adalah variabel untuk iterasi dan mencari nilai minimum.for (i = 0; i < n-1; i++)
adalah loop yang akan memeriksa setiap elemen dalam array kecuali elemen terakhir.min_idx = i;
inisialisasi nilai minimum dengan elemen pertama dalam array.for (j = i+1; j < n; j++)
adalah loop yang mencari nilai minimum pada array dengan membandingkan setiap elemen dengan nilai minimum saat ini.if (arr[j] < arr[min_idx])
adalah kondisi untuk mencari nilai minimum baru. Jika nilai elemen j lebih kecil dari nilai minimum saat ini, maka nilai minimum diupdate menjadi nilai elemen j.swap(arr[min_idx], arr[i]);
adalah proses untuk menukar elemen minimum dengan elemen pertama pada array yang belum terurut.void printArray(int arr[], int n)
adalah fungsi untuk mencetak array yang telah diurutkan.int main()
adalah fungsi utama dalam program. Pada fungsi main, array yang akan diurutkan diinisialisasi dengan angka-angka acak.int arr[] = {64, 25, 12, 22, 11};
adalah array yang akan diurutkan.int n = sizeof(arr)/sizeof(arr[0]);
adalah variabel untuk menyimpan ukuran array.selectionSort(arr, n);
adalah pemanggilan fungsi selectionSort untuk mengurutkan array.cout << "Sorted array: \n";
mencetak pesan “Sorted array: " di layar.printArray(arr, n);
mencetak array yang telah diurutkan menggunakan fungsi printArray.
Kesimpulan
Demikianlah contoh selection sort C++ dan implementasinya. Selection sort merupakan salah satu algoritma sorting yang mudah dipahami dan diimplementasikan. Dalam pengembangan perangkat lunak, pemilihan algoritma sorting yang tepat sangat penting untuk meningkatkan performa program. Selain itu, pemilihan bahasa pemrograman juga mempengaruhi performa program. C++ merupakan bahasa pemrograman yang cukup cepat dan populer dalam pengembangan perangkat lunak. Dengan menguasai selection sort dan bahasa pemrograman C++, diharapkan anda dapat mengembangkan program yang lebih berkelanjutan.