Merupakan kombinasi antara sorting dan searching. Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array. Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]), pada putaran kedua akan dicari data kedua terkeci
l, dan akan ditempatkan di indeks kedua (data[1]). Selama proses, pembandingan dan pengubahan hanya dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir proses.
Contoh coding c++ selection short:
#include <conio.h>Sumber : http://id.wikipedia.org/
#include <iostream.h>
#include <stdio.h>
void input(int data[], int n)
{
int i;
for (i=0;i<n;i++)
cout<<data[i]<<” “;
cout<<endl<<endl;
}
void selection_sort(int data[], int n)
{
int posmin, posawal, j, tmp;
for(posawal=0;posawal<n-1;posawal++)
{
posmin=posawal;
for (j=posawal+1;j<n;j++)
if(data[posmin]>data[j])
posmin=j;
tmp=data[posawal];
data[posawal]=data[posmin];
data[posmin]=tmp;
cout<<”\n Hasil ketika Posawal = “<<posawal<<” : “;
input(data,n);
}
}
int main ()
{
int data[50], i,n;
cout<<”nama: moch bili b \n”;
cout<<”nama: firman cahyadi \n”;
cout<<”nama: rizki el rachman \n\n\n”;
cout<<” SIMULASI SELECTION SORT \n”;
cout<<”=========================================\n”;
cout<<” masukkan banyak data : “;
cin>>n;
cout<<”=========================================\n”;
for (int a=0;a<n;a++)
{
cout<<”\n masukkan data ke “<<a<<” : “;
cin>>data[a];
}
selection_sort(data,n);
cout<<”=========================================\n”;
cout<<”\n\n hasil pengurutan : \n\n”;
cout<<” “; input(data,n);
cout<<”\n SORTING SELESAI……………….”;
getch();
}
Tidak ada komentar:
Posting Komentar