Pages

C++: Insertion Sort

Insertion Sort adalah metode mengurutkan data dengan membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan. Pengurutan dimulai dengan mengambil satu data dan membandingkannya dengan data-data yang ada didepannya. Jika data yang diambil memenuhi syarat perbandingan, maka data yang diambil tersebut akan diletakan di depan data yang dibandingkan, kemudian data-data yang dibandingkan akan bergeser mundur.

Script:

#include<iostream>

using namespace std;

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

void insertionsort(int val[], int n, char o)
{
    int y, temp;

    if(o == 'A')
    {
        for(int x = 0 + 1; x < n; x++)
        {
            temp = val[x];
            y = x - 1;
            while((temp < val[y]) && (y >= 0))
            {
                val[y + 1] = val[y];
                y--;
            }
            val[y + 1] = temp;
        }
    }
    else if(o == 'D')
    {
        for(int x = 0 + 1; x < n; x++)
        {
            temp = val[x];
            y = x - 1;
            while((temp > val[y]) && (y >= 0))
            {
                val[y + 1] = val[y];
                y--;
            }
            val[y + 1] = temp;
        }
    }
}

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];
    }
 
    insertionsort(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