Pengertian Selection Sort serta Contoh Implementasinya kedalam koding
Selection
sort adalah suatu metode pengurutan yang membandingkan elemen yang
sekarang dengan elemen berikut sampai ke elemen yang terakhir. Jika
ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat
posisinya dan langsung ditukar.
Misalkan ada data-data sebagai berikut :
5
|
34
|
32
|
1
|
Daftar
bilangan diatas masih belum urut dari kecil ke besar. Kita ingin
melakukan pengurutan dari yang terkecil sampai yang terbesar dari 3 data
tersebut.
Langkah pertama , membandingkan satu persatu sampai dengan yang terkakhir. Langkah-langkahnya sebagai berikut :
Langkah pertama :
Pembanding Posisi
5<34 1
5<32 1
5<1 4
Tukar data pada posisi 1 dengan data posisi 4
Hasil sementara : 1, 34,32,5
Langkah Kedua :
Pembanding Posisi
34>32 3
32<5 4
Tukar data pada posisi 2 dengan data posisi 4
Hasil akhir : 1, 5, 32, 34
Proses pengurutan data di atas memerlukan 2 kali perulangan.
Contoh Implementasi kodingnya:
---------------------------------------------------------------------------------------------------------------
#include <iostream>
#include <conio.h>
using namespace std;
int data[100];
int n;
void tukar(int a, int b)
{
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}
int main()
{
//Pendeklarasian variabel
int i,j,temp;
cout<<"Menetukan Jumlah Indeks Array Maksimal 100"<<endl;
cout<<"=========================================="<<endl;
cout<<"Masukan Jumlah Data Array: ";
cin>>n;
cout<<endl;
cout<<"Menginputkan Nilai Kedalam Indeks Array"<<endl;
cout<<"======================================="<<endl;
for(i=0;i<n;i++)
{
cout<<"Masukan Nilai Untuk Indeks ke- "<<i<<" : ";
cin>>data[i];
}
cout<<endl;
cout<<"Menampilkan Nilai Array Sebelum Di Urutkan"<<endl;
cout<<"=========================================="<<endl;
for(i=0;i<n;i++)
{
cout<<"Indeks ke-"<<i<<" : "<<data[i]<<endl;
}
cout<<endl;
cout<<"Menampilkan Nilai Setelah Di Urutkan!!"<<endl;
cout<<"======================================"<<endl;
for(i=0;i<n-1;i++)
{
temp=i;
for(j=i+1;j<n;j++)
{
if(data[j]<data[temp])temp=j;
}
if(temp!=i)
{
tukar(temp,i);
}
}
for(int i=0;i<n;i++)
{
cout<<"Indeks ke-"<<i<<" : "<<data[i]<<endl;
}
getch();
return 0;
}
#include <conio.h>
using namespace std;
int data[100];
int n;
void tukar(int a, int b)
{
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}
int main()
{
//Pendeklarasian variabel
int i,j,temp;
cout<<"Menetukan Jumlah Indeks Array Maksimal 100"<<endl;
cout<<"=========================================="<<endl;
cout<<"Masukan Jumlah Data Array: ";
cin>>n;
cout<<endl;
cout<<"Menginputkan Nilai Kedalam Indeks Array"<<endl;
cout<<"======================================="<<endl;
for(i=0;i<n;i++)
{
cout<<"Masukan Nilai Untuk Indeks ke- "<<i<<" : ";
cin>>data[i];
}
cout<<endl;
cout<<"Menampilkan Nilai Array Sebelum Di Urutkan"<<endl;
cout<<"=========================================="<<endl;
for(i=0;i<n;i++)
{
cout<<"Indeks ke-"<<i<<" : "<<data[i]<<endl;
}
cout<<endl;
cout<<"Menampilkan Nilai Setelah Di Urutkan!!"<<endl;
cout<<"======================================"<<endl;
for(i=0;i<n-1;i++)
{
temp=i;
for(j=i+1;j<n;j++)
{
if(data[j]<data[temp])temp=j;
}
if(temp!=i)
{
tukar(temp,i);
}
}
for(int i=0;i<n;i++)
{
cout<<"Indeks ke-"<<i<<" : "<<data[i]<<endl;
}
getch();
return 0;
}
---------------------------------------------------------------------------------------------------------------
Jika Di Compile maka akan tampak seperti gambar di bawah ini:
Sumber : Buku Konsep dan Implementasi Struktur Data dengan C++
Oleh : Lamhot Sitorus dan David J.M Sembiring
Penerbit : Andi
terimakasih
Komentar ini telah dihapus oleh pengarang.
BalasHapus