Kali ini aku akan menjelaskan selection sort array menggunakan C++ . Selection sort array adalah jenis algoritma seleksi yang mengurutkan sebuah array berulang kali hingga menemukan elemen minimum (mempertimbangkan urutan menaik) dari bagian yang tidak disortir dan meletakkannya di awal.
Analisis selection sort : mengurutkan bilangan dari elemen array [2,7,4,9] menjadi [2,4,7,9] dengan tahapan yang lebih muda.
Baca Juga : Kegunaan Template Class dan Reference Parameter pada C++
Algoritma pengurutan dengan metode seleksi dapat diilustrasikan demikian. Misalkan
diberikan data awal :
[8, 4, 7, 3, 1, 2, 6, 5]
Data pertama adalah 8. Akan dicari (atau tepatnya “dipilih/diseleksi”) data terkecil dari data
kedua sampai terakhir yang terkecil untuk menempati posisi pertama (i = 1) ini. Data terkecil
ditemukan pada posisi ke-5 (t=5). Maka data pertama ditukar dengan data ke-5, menjadi :
[1, 4, 7, 3, 8, 2, 6, 5]
Langkah ini diulang untuk data kedua (i=2). Ditemukan data terkecil pada posisi ke-6 (t=6). Data
ke-2 ditukar dengan data ke-6, menjadi :
[1, 2, 7, 3, 8, 4, 6, 5]
Fase selengkapnya dapat dilihat pada data berikut ini.
Data awal : [8, 4, 7, 3, 1, 2, 6, 5] 1 terkecil, 8 -- 1
fase 1 [1, 4, 7, 3, 8, 2, 6, 5] 2 terkecil, 4 -- 2
fase 2 [1, 2, 7, 3, 8, 4, 6, 5] 3 terkecil, 7 -- 3
fase 3 [1, 2, 3, 7, 8, 4, 6, 5] 4 terkecil, 7 -- 4
fase 4 [1, 2, 3, 4, 8, 7, 6, 5] 5 terkecil, 8 -- 5
fase 5 [1, 2, 3, 4, 5, 7, 6, 8] 6 terkecil, 7 -- 6
fase 6 [1, 2, 3, 4, 5, 6, 7, 8] 7 terkecil, tetap
fase 7 [1, 2, 3, 4, 5, 6, 7, 8]
fase 8 [1, 2, 3, 4, 5, 6, 7, 8]
dibawah ini adalah program dan penjelasan dari selection sort array :
#include <iostream>
using namespace std;
void baca_data(int A[], int n){
//fungsi ini untuk menginputkan data satu persatu sesuai batas yang ditentukan
int i;
for (i = 0; i < n; i++){
//melakukan perulangan sesuai batas n
cout << "Data ke-: "<<i+1<<"= ";
cin >> A[i]; //menginputkan data dan disimpan di array A
}
}
void cetak_data(const int A[], int n){
//menampilkan dari elemen array satu persatu
int i;
for (i = 0; i < n; i++) cout << A[i];
cout << "\n";
}
void tukar (int *a, int *b){
int temp;
temp = *a; //memberikan nilai pada variabel temp
*a = *b; //mengeset variabel a sebagai nilai b
*b = temp; //untuk mengisi variabel b dengan variabel temp
}
void minimum(int A[], int dari, int n, int * tempat){
int i, min;
min = A[dari];
*tempat = dari;
for (i = dari+1; i<n; i++)
if (A[i] < min){
min = A[i];
*tempat = i;
}
}
void selection_sort(int A[], int n){
int i, t;
for (i = 0; i<n; i++){
minimum(A, i, n, &t);
tukar(&A[i], &A[t]);
}
}
main() {
int data[10], n;
cout << "Banyak data : ";
cin >> n;
baca_data(data,n);
cetak_data(data,n);
selection_sort(data,n);
cout<<endl;
cout<<"setelah diurutkan"<<endl;
cetak_data(data,n);
return 0;
}
Penjelasan :
Parameter int A[] pada void baca_data(int A[], int n) berfungsi untuk memberikan parameter array.
void baca_data() berfungsi untuk menginputkan data satu persatu sesuai batas yang ditentukan.
void cetak_data() berfungsi untuk menampilkan dari elemen array satu persatu.
void tukar () berfungsi untuk menukarkan nilai dari 2 parameter yang dimasukkan.
void minimum() berfungsi untuk mencari nilai yang paling kecil dari array.
void selection_sort() berfungsi untuk melakukan selection sort pada array.
Hasil :
raptor : klik
Terimakasih sudah berkunjung ke blogku :D
Bagikan
Metode Selection Sort Array Dengan C++
4/
5
Oleh
Bayu Ambika
Silahkan berkomentar secara bijak dan sesuai dengan topik pembahasan ...
Untuk menyisipkan kode pendek, gunakan <i rel="code"> ... KODE ... </i>
Untuk menyisipkan kode panjang, gunakan <i rel="pre"> ... KODE ... </i>
Untuk menyisipkan gambar, gunakan <i rel="image"> ... URL GAMBAR ... </i>