Selasa, 04 Maret 2014

SELECTION SORT

Lanjutan yang kemarin yaa..


2. SELECTION SORT
Metode ini memiliki konsep memilih data yang maksimum / minimum dari suatu kumpulan data larik L, lalu menempatkan data tersebut ke elemen paling akhir atau paling awal sesuai pengurutan yang diinginkan. Data maksimum / minimum yang diperoleh, diasingkan ke tempat lain, dan tidak diikutsertakan pada proses pencarian data maksimum / minimum berikutnya.


Algoritma Selection Sort beroperasi sebagai berikut :
1. Temukan nilai yang paling minimum (atau sesuai keinginan) di dalam struktur data. Jika ascending, maka yang harus ditemukan adalah nilai yang paling minimum. Jika descending, maka yang harus ditemukan adalah nilai yang paling maksimum.
2. Tukar nilai tersebut dengan nilai pada posisi pertama di bagian struktur data yang belum diurutkan.
3. Ulangi langkah di atas untuk bagian struktur data yang tersisa.


Contoh Program Selection Sort C++ (Ascending):
#include <iostream>
#include <conio.h>

using namespace std;

int data[10],data2[10];
int n;

void swap(int a,int b)
{
    int swap;
    swap = data[b];
    data[b] = data[a];
    data[a] = swap;
}

void Input()
{
    cout<<"Masukkan jumlah data yang diinginkan : ";
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cout<<"Masukkan data ke-"<<(i+1)<<" : ";
        cin>>data[i];
        data2[i] = data[i];
    }
    cout<<endl;
}

void Tampil()
{
    for(int i=0;i<n;i++)
    {
        cout<<data[i]<<" ";
    }
    cout<<endl;
}

void Selection_Sort()
{
    for(int i=1;i<n;i++)
    {
        for(int j=n-1;j>=i;j--)
        {
            if(data[j]<data[j-1]) swap(j,j-1);
        }
    }
    cout<<endl;
}

int main()
{
    cout<<"---------------------------------------------"<<endl;
    cout<<"SELECTION SORT C++"<<endl;
    cout<<"---------------------------------------------"<<endl<<endl;
        Input();
    cout<<"Selection Sort : ";
        Tampil();
        Selection_Sort();
    cout<<"Hasil Pengurutan Selection Sort : ";
        Tampil();
    cout<<"---------------------------------------------"<<endl;

    getch();
}

Output Setelah di Run :



Referensi:
Munir, Rinaldi. (2011). Algoritma dan Pemrograman Dalam Bahasa Pascal dan C. Edisi Revisi. Bandung: Informatika.
Krisna, Putu. (23 May 2012). Sorting-Program Bubble Sort. http://belajarohbelajar.blogspot.com/2012/05/program-bubble-sort.html. 20 Februari 2014
Nurhayati, OD. (2010). Algoritma dan Pemrograman Sorting dan Searching. http://eprints.undip.ac.id/19736/1/sorting.pdf. 20 Februari 2014
Susanto, Ilham. (3 April 2013). Analisa Algoritma | Bubble Sort. http://buublesort.blogspot.com/2013/04/analisa-algoritma.html. 20 Februari 2014
Tunk, Tunk. (22 November 2013). Sekedar Berbagi. http://aina-tunk.blogspot.com/. 20 Februari 2014
Santoso, Rachmat. (3 May 2013). Algoritma Sorting (Algoritma dan Struktur Data). http://rachmatsn.blogspot.com/2013/05/algoritma-sorting-algoritma-dan.html. 20 Februari 2014