SELECTION SORT
Selection Sort merupakan kombinasi antara sorting dan searching. Metode selection sort adalah perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan. Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data posisi 0 hingga posisi N-1. Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1. Selama proses, perbandingan dan pengubahan, hanya dilakukan pada indeks perbandingan saja, pertukaran data secara fisik terjadi pada akhir proses.
Metode pengurutan ini disebut pengurutan maksimum atau minimum karena
didasarkan pada pemilihan elemen maksimum atau minimum tersebut dengan
elemen terujung larik (elemen ujung kiri atau elemen ujung kanan).
Selanjutnya elemen terujung itu kita "isolasi" dan tidak diikutsertakan
pada proses selanjutnya. Karena proses utama dalam pengurutan adalah
pemilihan elemen maksimum atau minimum, maka metode ini disebut metode
pemilihan (selection sort).
- Prinsip Kerja Selection Sort
- Contoh ilustrasi Selection Sort
Kelebihan
- Algoritma ini sangat rapat dan mudah untuk diimplementasikan.
- Operasi pertukarannya hanya dilakukan sekali saja.
- Waktu pengurutan dapat lebih ditekan.
- Mudah menggabungkannya kembali.
- Kompleksitas selection sort relatif lebih kecil.
- Algoritma ini sangat rapat dan mudah untuk diimplementasikan.
- Operasi pertukarannya hanya dilakukan sekali saja.
- Waktu pengurutan dapat lebih ditekan.
- Mudah menggabungkannya kembali.
- Kompleksitas selection sort relatif lebih kecil.
Kekurangan
- Membutuhkan method tambahan.
- Sulit untuk membagi masalah.
- Membutuhkan method tambahan.
- Sulit untuk membagi masalah.
Contoh Program Selection Sort :
#include <iostream>
void input_data ();
void output_data();
void selection_sort();
void tukar(int &a,int &b);
using namespace std;
int array[100],i,n;
//main
int main()
{
cout<<"********Selection Sort********"<<endl<<endl;
cout<<"Nama : Sekar Sari Wiradarma"<<endl;
cout<<"Nim : 09031281320004"<<endl;
cout<<"Kelas: Sistem Informasi 2B"<<endl;
input_data ();
//tampilan data sebelum diurutkan
cout<<"\nData Sebelum diurutkan : ";
output_data();
selection_sort();
//tampilan data setelah diurut
cout<<endl<<"Data Setelah diurutkan : ";
output_data();
cout<<endl;
cout<<endl<<"*****Penyortingan Selesai*****"<<endl;
}
void input_data ()
{
cout<<"\nMasukkan Jumlah Data (max 100) : "; cin>>n;
for (i=0;i<n;i++)
{
cout<<"\nData ke -"<<i+1<<": ";
cin>>array[i];
}
}
void output_data()
{
cout<<endl;
for (i=0;i<n;i++)
{
cout<<array[i]<<" ";
}
}
void tukar(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
void selection_sort()
{
for(int j=0;j<n;j++)
{
int max=-999;
int indexmax=-1;
for(int k=j;k<n;k++)
{
if(array[k]>max)
{
max=array[k];
indexmax=k;
}
}
tukar(array[j],array[indexmax]);
}
}
Output :
Sumber :
http://wentii2012ftiuksw.blogspot.com/2013/02/selection-sort.html
No comments:
Post a Comment