Algoritma Selection Sort

#include <iostream>

//kamus

using namespace std;

int array[100];

int batas();

int input(int batas);

int cetak_array(int batas,int array[]);

int selection_sort(int batas,int array[]);

int x;


//deskripsi

int main()

{

    //fungsi batas array

    x = batas();

    cout << endl;

    cout << endl;


    //fungsi input

    input(x);

    cout << endl;

    cout << endl;


    //fungsi cetak array sebelum di sorting

    cout << "Array sebelum disorting : ";

    cetak_array(x,array);

    cout << endl;

    cout << endl;


    //fungsi selection sort

    selection_sort(x,array);


    //cetak hasil sorting

    cout << "Array setelah di sorting : ";

    cetak_array(x,array);


    return 0;

}


//fungsi batas

int batas()

{

    //kamus lokal

    int batas_array;


    cout << "Masukan nilai array : ";

    cin >> batas_array;


    //return batas array

    return batas_array;

}


//fungsi input

int input(int batas)

{

    //kamus lokal

    int a;


    a = 0;

    while(a < batas)

    {

        cout << "Masukan nilai array ke-" << a+1 << " = ";

        cin >> array[a];

        a = a + 1;

    }

    return 0;

}


//fungsi cetak

int cetak_array(int batas,int array[])

{

    //kamus lokal

    int b;


    b = 0;

    while(b < batas)

    {

        cout << array[b] << " ";

        b = b + 1;

    }


    return 0;

}


int selection_sort(int batas,int array[])

{

    //kamus lokal

    int i;

    int j;

    int index;

    int tampung;


    i = 0;


    while(i < batas)

    {

        j = i;

        index = i;

        while(j < batas)

        {

            if(array[index] > array[j])

            {

                index = j;

            }

            j = j + 1;

        }


        tampung = array[i];

        array[i] = array[index];

        array[index] = tampung;


        i = i + 1;

    }

    return 0;

}



Penjelasan :

Algoritma Selection sort menggunakan cara melakukan pengecekan pada index pertama hingga index terakhir pada suatu Array data.

Kemudian melakukan penentuan bilangan index terkecil dari barisan data tersebut.

Kemudian jika bilangan terkecil sudah ketemu, maka akan terjadi pertukaran value index dengan alamat index pertama.

Begitu seterusnya hingga semua value data sudah terurutkan.

Komentar