SELECTION SORT
Selection sort
merupakan kombinasi antara sorting dan searching. Pengertian dari selection
sort adalah mencari elemen yang tepat untuk diletakkan di posisi yang telah
diketahui, dan meletakkannya di posisi tersebut setelah data tersebut ditemukan.
Selection Sort Membandingkan
elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang
terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka
dicatat posisinya dan kemudian ditukar.
Pengurutan data dalam struktur
data sangat penting untuk data yang bertipe data numerik ataupun karakter. Pengurutan
dapat dilakukan secara ascending (urut naik) dan descending (urut turun)
Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah
disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut
aturan tertentu.
Contoh:
Data Acak :
5 6 8 1 3 25 10
Ascending : 1 3 5 6 8 10 25
Descending : 25
10 8 6 5 3 1
Konsep Algoritma
pengurutan sederhana salah satunya adalah Selection Sort. Ide dasarnya adalah
melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data.
Untuk sorting ascending (menaik),
elemen yang paling kecil di
antara elemen-elemen yang belum urut, disimpan indeksnya, kemudian dilakukan
pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang
paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun),
elemen yang paling besar yang disimpan indeksnya kemudian ditukar.
Selection Sort
diakui karena kesederhanaan algoritmanya dan performanya lebih bagus daripada
algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja
sebagai berikut:
1.
Mencari nilai minimum (jika ascending)
atau maksimum (jika descending) dalam sebuah list.
2.
Menukarkan nilai ini dengan elemen
pertama list.
3.
Mengulangi langkah di atas untuk sisa
list dengan dimulai pada posisi kedua. Secara efisien kita membagi list menjadi
dua bagian yaitu bagian yang sudah diurutkan, yang didapat dengan membangun
dari kiri ke kanan dan dilakukan pada saat awal, dan bagian list yang elemennya
akan diurutkan.
Cara mudahnya dalam mengurutkan selection sort :
- Cek seluruh elemen array, temukan nilai
terkecil jika assending dan sebaliknya jiaka dessendingkemudian tukarkan
posisinya dengan posisi nilai yang tersimpan pada posisi pertama dari
array.
2. Temukan nilai terkecil/terbesar kedua dan tukarkan
posisinya dengan nilai yang berada pada posisi kedua.
- Elemen sebelumnya/dua elemen pertama tidak
akan berubah lagi sebab mereka sudah merupakan nilai terkecil/terbesar
pertama dan kedua dalam array tersebut, ulangi dengan cara/proses “pilih
dan tukar” sampai semua elemen tersorting.
Metode
selection sort:
Contoh Program Selection Sort
#include
<iostream>
#include
<conio.h>
using
namespace std;
int
data[10],data2[10];
int n;
void
tukar(int a, int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void
selection_sort()
{
int pos,i,j;
for(i=0;i<n-1;i++)
{
pos = i;
for(j = i+1;j<n;j++)
{
if(data[j] < data[pos]) pos = j;
}
if(pos
!= i) tukar(pos,i);
}
}
main()
{
cout<<"===PROGRAM SELECTION
SORT==="<<endl;
cout<<"Masukkan Jumlah Data :
";cin>>n;
for(int i=0;i<n;i++)
{
cout<<"\nMasukkan data index ke [
"<<i<<" ]: ";cin>>data[i];
data2[i]=data[i];
}
selection_sort();
cout<<"\n\n";
cout<<"Data Setelah di Sort :
";
for(int i=0; i<n; i++)
{
cout<<" "<<data[i];
}
getch();
}
Tidak ada komentar:
Posting Komentar