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(); }