Prinsip Kerja dari Teknik Selection Sort ini adalah :
- Pengecekan dimulai data ke-1 sampai dengan data ke-n
- Tentukan bilangan dengan Index terkecil dari data bilangan tersebut
- Tukar bilangan dengan Index terkecil tersebut dengan bilangan pertama ( I = 1 ) dari data bilangan tersebut
- Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I= I+1 ) sampai didapatkan urutan yg optimal.
Proses Iterasi 1
| Proses | 1 | 2 | 3 | 4 | 5 | 6 | |
| Langkah 1 | : | 22 | 10 | 15 | 3 | 8 | 22 |
| Langkah 2 | : | 22 | 10 | 15 | 3 | 8 | 22 |
| Langkah 3 | : | 2 | 10 | 15 | 3 | 8 | 22 |
Proses Iterasi 2
| Proses | 1 | 2 | 3 | 4 | 5 | 6 | |
| Langkah 1 | : | 2 | 10 | 15 | 3 | 8 | 22 |
| Langkah 2 | : | 2 | 10 | 15 | 3 | 8 | 22 |
| Langkah 3 | : | 2 | 3 | 15 | 10 | 8 | 22 |
- Ulangi langkah 2 dan 3
- Lakukan Iterasi selanjutnya sampai iterasi ke-6
Berikut source code program Selection Sort
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
main()
{
int data_ss[]={22,10,15,3,8,2};
int i,j,n,pos;
n = sizeof(data_ss)/sizeof(int);
cout<<"\n\nData Sebelum Sorting : \n";
for(i=0;i<n;i++)
{
cout<<data_ss[i]<<" ";
}
// -- Proses Selection Sort
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(data_ss[i]>data_ss[j])
{
pos=data_ss[i];
data_ss[i]=data_ss[j];
data_ss[j]=pos;
}
}
}
cout<<"\n\nData Telah Melewati Selection Sort : \n";
for(i=0;i<n;i++)
{
cout<<data_ss[i]<<" ";
}
getch();
}

