Pages

C++: Selection Sort

Selection Sort adalah metode membandingkan suatu elemen dengan elemen berikutnya sampai elemen yang terakhir. Untuk pengurutan ascending, elemen yang paling kecil di antara elemen-elemen yang belum urut disimpan indeksnya, kemudian melakukan pertukaran nilai elemen indeks yang disimpan tersebut dengan elemen yang belum terurut. Untuk pengurutan descending, elemen yang paling besar di antara elemen-elemen yang belum urut disimpan indeksnya, kemudian melakukan pertukaran nilai elemen indeks yang disimpan tersebut dengan elemen yang belum terurut.

Script:

#include<iostream>

using namespace std;

void tukar(int &a, int &b)
{
    int temp;
 
    temp = a;
    a = b;
    b = temp;
}

void selectionsort(int val[], int n, char o)
{
    int idx;
 
    if(o == 'A')
    {
        for(int x = 0; x < n; x++)
        {
            idx = x;
            for(int y = x + 1; y < n; y++)
            {
                if(val[y] < val[idx])
                    idx = y;
            }
            if(idx != x)
                tukar(val[x], val[idx]);
        }
    }
    else if(o == 'D')
    {
        for(int x = 0; x < n; x++)
        {
            idx = x;
            for(int y = x + 1; y < n; y++)
            {
                if(val[y] > val[idx])
                    idx = y;
            }
            if(idx != x)
                tukar(val[x], val[idx]);
        }
    }
}

int main()
{
    char urut;
    int nilai[100];
    int z, jumlah;
 
    cout<<"Jumlah Data  : ";
    cin>>jumlah;
    cout<<"Urut [A/D]   : ";
    cin>>urut;
    cout<<"--------------------------------\n";
    for(z = 0; z < jumlah; z++)
    {
        cout<<"Nilai ke-"<<1 + z<<"  : ";
        cin>>nilai[z];
    }
 
    selectionsort(nilai, jumlah, urut);
 
    cout<<"--------------------------------\n";
    cout<<"          HASIL SORTIR          \n";
    cout<<"--------------------------------\n";
    for(z = 0; z < jumlah; z++)
    {
        cout<<nilai[z]<<" ";
    }
 
    return 0;
}

Zhuel Rainz

Rainz Code adalah blog berisi tutorial, script, atau project dari berbagai macam bahasa pemrograman yan diharapkan bisa membantu pembaca untuk belajar pemrograman, membuat tugas, skripsi, atau bahkan membuat aplikasi yang bisa menghasilkan uang. Khusus untuk source code, silahkan email atau hubungi penulis melalui link-link yang sudah tersedia di bawah ini.

No comments:

Post a Comment