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;
}
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
0 komentar:
Posting Komentar