1.10.16

Insertion Sort



         Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan. Cara kerja dasar dari algoritma Insertion Sort ini adalah mencari tempat yang "tepat" untuk setiap elemen array, dengan cara sequential search. Proses ini kemudian menyisipkan sebuah elemen array yang diproses ke tempatnya yang seharusnya. Proses dilakukan sebanyak n-1 tahapan, dengan indeks dimulai dari 0. Proses pengurutan dengan menggunakan algoritma Insertion Sort dilakukan dengan cara membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya.

Kelebihan
1. Sederhana dalam implementasinya

2. Bagus bila data dalam  yang kecil.

3. Jika list sudah terurut dari awal atau sebagian terurut maka Insertion Sort akan lebih
     cepat dibandingkan dengan Quicksort.

4. Perfoma melebihi Bubble Sort dan Selection Sort.

6. Loop pada Inserion Sort sangat cepat, sehingga membuatnya salah satu 
    algoritma pengurutan tercepat pada jumlah elemen yang sedikit.

7. Cukup Stabil.
Kekurangan
1. Banyak operasi yang dilakukan dalam prosesnya
2. Tidak Praktis untuk jumlah data yang banyak
Contoh ilustrasi Insertion :
 Contoh Source Code
  -------------------------------------------------------------------------------------------------------------------

#include <stdio.h>
#include <conio.h>

using namespace std;
int data[10], data[10];
int n;
void tukar(int a, int b)
{
     Int t t;
     T = data[b];
     Data[b] = data[a];
     Data[a] = t;
}
Void insertion_sort()
{
     Int temp,i,j;
     For(i=1; i<=n; i++)
     {
           Temp = data[i];
           J = i -1;
           While (data[j]>temp && j>=0)
           {
                Data[j+1] = data[j];
                j—
           }
     Data[j+1] = temp;
     }
}
Int main()
{
     Cout<<”\t\t Program Insertion Sort\n\n\n”
     <<endl;
     Cout<<”Masukan Jumlah data : “;
     Cin<<n;
     For(int i=1; i<=n; i++)
     {
           Cout<<”-Masukan data ke “<<i<<” : “;
           Cin>>data[i];
           Data2[i]=data[i];
     }
     Insertion sort();
     Cout<<”\nData Setelah disort : “;
     For(int i=1; i<=n; i++)
     {
           Cout<<” “<<data[i];
     }
     Getch();
}

--------------------------------------------------------------------------------------------------------------
  
Daftar Pusaka : 
http://aprimuhammad28-kakaroto.blogspot.co.id/2014/01/alpro-materi-sorting.html
http://guntur98.blogspot.co.id/2015/09/pengertian-dan-contoh-insertion-sort.html
http://sisinform-aaf1231072.blogspot.co.id/2013/02/insertion-sort.html


EmoticonEmoticon