Anda di halaman 1dari 2

Selection Sort

Selection sort merupakan sebuah teknik pengurutan dengan cara mencari


nilai tertinggi / terendah di dalam array kemudian menempatkan nilai
tersebut di tempat semestinya. Algorithma ini dapat mengurutkan data
dari besar ke kecil (Ascending) dan kecil ke besar (Descending). Algoritma
ini tidak cocok untuk set data dengan jumlah besar karena kompleksitas
dari algorithma ini adalah n(x2) di mana n adalah jumlah item. Jadi cara
kerja dari teknik ini adalah program akan melihat data secara keseluruhan
mulai dari data pertama sampai terakhir kemudian akan di ambil data
terkecil/terbesar untuk ditempatkan di tempat yang seharusnya.

untuk lebih jelas bias di lihat di bawah ini

Jika data dengan isi array = {70, 60, 30, 50, 40,20}, data tersebut akan
diurutkan menggunakan teknik selection sort dari kecil ke besar ASC
langkahnya sebagai berikut:

1. Tahap 1
(70, 60, 30, 50, 40,20) ->min 20
Sehingga hasilnya
(20, 60, 30, 50, 40, 70)

2. Tahap 2
(20, 60, 30, 50, 40, 70) ->min 30
Sehingga hasilnya
(20, 30, 60, 50, 40, 70)

3. Tahap 3
(20, 30, 60, 50, 40, 70)->min 40
Sehingga hasilnya
(20, 30, 40, 50, 60, 70)

4. Tahap 4
(20, 30, 40, 50, 60, 70)->min 50
Sehingga hasilnya
(20, 30, 40, 50, 60, 70)
5. Tahap 5
(20, 30, 40, 50, 60, 70) ->min 60
Sehingga hasilnya
(20, 30, 40, 50, 60, 70)
Sehingga denga melalui 5 tahapan hasilnya adalah (20, 30, 40, 50, 60,
70)

Contoh Programnya adalah sebagai berikut:

#include<iostream>
#include<conio.h>

using namespace std;


int main()
{
int i,j,Imaks,maks,temp;
int L[10]={1,4,7,5,3,8,2,10,6,9};

cout<<"\t\t \tLATIHAN 3: Mengurutkan Data"<<endl;


cout<<"\ndata :\n1,4,7,5,3,8,2,10,6,9"<<endl<<endl;

for (i=9;i>=1;i--)
{
Imaks=0; maks=L[0];
for (j=1;j<=i;j++)
{
if (L[j]>maks)
{
Imaks=j; maks=L[j];
}
}
temp=L[i];
L[i]=maks;
L[Imaks]=temp;
}

cout<<"data terurut ascending :"<<endl;


for (i=0;i<=9;i++)
{
cout<<L[i]<<" ";
}
cout<<endl;
getch();
}

Anda mungkin juga menyukai