Straight Insertion Sort (By Septian Fs)

19:04 Pemrograman Web 6 Comments

STRAIGHT INSERTION SORT



Sorting adalah algoritma penyusunan sederhana yang membangun perurutan array atau daftar satu item terakhir pada suatu waktu. Hal ini jauh lebih efisien pada daftar besar yang maju pada algoritma, seperti timbunan atau semacam penggabungan.
            Penyisipan semacam iterasi, mengkonsumsi satu elemen input, masing-masing pengulangan dan diurutkan daftar output. Setiap iterasi, penyisipan semacam menghilangkan salah satu elemen dari input data, menemukan lokasi yang termasuk dalam urutan daftar dan menyisipkan yang ada.
Penyortiran biasanya dilakkukan di tempat oleh iterasi atas array, tumbuh daftar diurutkan di balik itu. Di setiap posisi array, memeriksa nilai terhadap nilai terbesar dalam urutan daftar. Jika lebih besar, maka akan meninggalkan elemen ditempat dan bergerak kedepan. Jika lebih kecil, meka menemukan posisi yang benar dalam daftar yang diurutkan, pergeseran semua nilai yang besar sehingga menjadikan sebuah ruang, dan memasukan ke dalam posisi yang benar.

CONTOH CODE PROGRAM

Source Code

#include <cstdlib>
#include <iostream>

using namespace std;

void InsertSort(int [],int );

int main()
{
   char C;
   do
   {
    int x;
    cout<<"Masukan berapa banyak element"<<endl;
    cin>>x;
    int s[x];
    cout<<"Masukan nilai element"<<endl;
    for(int i=1;i<=x;i++)
    {
        cin>>s[i];
    }

    InsertSort(s,x);

    cout<<"----Urutan Output----"<<endl;

    for(int f=1;f<=x;f++)
    {
        cout<<s[f]<<"  ";
    }

    cout<<endl<<"Tekan 'y' untuk melanjutkan!!!";
    cin>>C;
   }
  
   while(C=='y');

   return 0;

}

 void InsertSort(int s[],int x)
    {
        int key,i,j;
        for(j=2;j<=x;j++)
        {
            key=s[j];
            i=j-1;
            while((i>0)&&(s[i]>key))
            {
                s[i+1]=s[i];
                i=i-1;
            }
            s[i+1]=key;
        }
    }


ANALISIS SOURCE CODE

#include <cstdlib>

#include <iostream>

File header ini digunakan untuk menampilkan sebuah perintah seperti (endl, cout dan cin)”

using namespace std;

Perintah untuk memberitahukan bahwa kompiler akan menggunakan semua fungsi,class dan file yang ada pada memory namespace std.

void InsertSort(int [],int );
int main()
{
   return 0;
}

Dalam fungsi main ini, keluaran fungsi yang berupa integer (int), nama fungsi main, parameter 1 bertipe integer dan juga parameter 2 bertipe integer.
Pada Instruksi return diatas berfungsi untuk mengembalikan keluaran fungsi ini, keluaran fungsi ini adalah bernilai 0.

char C;
   do
   {
    int x;
    cout<<"Masukan berapa banyak element"<<endl;
    cin>>x;
    int s[x];
    cout<<"Masukan nilai element"<<endl;
  
Tipe data Char dengan value C, sedangkan “do” adalah instruksi perulangan dan didalamnya terdapat tipe data integer dengan value x dan s.
Perintah Cout digunakan untuk menampilkan output “Masukan berapa banyak element” dan “Masukan nilai element”
Fungsi cin merupakan fungsi untuk menyimpan data pada variabel.

 for(int i=1;i<=x;i++)
    {
        cin>>s[i];
    }

For juga merupakan sebuat perulangan dimana nilai integer i adalah 1, dan apabila nilai i kurang atau sama dengan x, maka nilai i bertambah.
Sedangkan intruksi cin merupakan fungsi masukan yang berguna untuk menyimpan data pada suatu variabel.

    InsertSort(s,x);

    cout<<"----Urutan Output----"<<endl;

    for(int f=1;f<=x;f++)
    {
        cout<<s[f]<<"  ";
    }

Parameter InsertSort yang berisikan s dan x. Instruksi cout untuk menampilkan tampilan output "----Urutan Output----"
Perulangan for berisikan tipe data integer f yang bernilai 1, apabila f kurang atau sama dengan x, maka nilai f akan bertambah.
Instruksi cout menampilkan output nilai dari s[f]

    cout<<endl<<"Tekan 'y' untuk melanjutkan!!!";
    cin>>C;
   }
  
Fungsi keluaran output dengan cout akan menampilkan output “Tekan 'y' untuk melanjutkan!!!"
Dan instruksi cin akan menyimpan data pada variabel C.

   while(C=='y');

Perulangan variable C sama dengan ‘y’

 void InsertSort(int s[],int x)
    {
        int key,i,j;

Fungsi InsertSort ini dengan berisikan parameter ke 1 berupa tipe data integer dengan value s, dan parameter 2 dengan value x dan sama bertipe integer.

        for(j=2;j<=x;j++)
        {
            key=s[j];
            i=j-1;
            while((i>0)&&(s[i]>key))
            {
                s[i+1]=s[i];
                i=i-1;
            }
            s[i+1]=key;
Fungsi for sebagai perulangan dengan variabel j yang bernilai 2, dan apabila j kurang atau sama dengan nilai x, maka nilai j akan bertambah.
Variabel key dengan value s[j], variabel i memiliki nilai dari j-1.
Instruksi While sama halnya dengan perulangan atau looping dimana nilai i lebih besar daripada 0 dan nilai s[i] lebih besar daripada key. Nilai s[i] adalah hasil dari s[i+1], dan nilai i disini sama dengan i-1. Sedangkan nilai key adalah hasil dari s[i+1]

OUTPUT

Masukan berapa banyak element
4
Masukan nilai element
18 9 20 14
----Urutan Output----
9  14  18  20
Tekan 'y' untuk melanjutkan!!!


Soure Code bisa dilihat  pada Github, Klik link dibawah:

Klik Disini

By. Septian Firmansyah

6 komentar: