Insertion Sort jika dibandingkan menggunakan kartu remi. Seperti ketika Anda mengambil setiap kartu, kemudian Anda masukkan kartu ke posisi yang benar di tangan anda hingga terorganisir urutannya dengan rapi. Insertion Sort membagi array menjadi dua sub-array. Array sub pertama(diibaratkan kartu yang ditangan anda) yang diurutkan dan peningkatan ukuran dan semacamnya. Sub array kedua(seperi kartu yang akan diambil) kartu yang belum terurutkan, mengandung semua elemen yang belum dimasukkan ke dalam array sub pertama dan berkurang sesuai ukuran.
#include<iostream.h>
#include<conio.h>
main()
{
int x,a[100],i,t,j,k;
cout<<"Insertion Sort - Desc\n";
cout<<"Masukkan banyak bilangan = ";cin>>x;
for(i=1;i<=x;i++)
{
cout<<"\n Bilangan ke-"<<i<<" : ";cin>>a[i];
}
cout<<"\n\n data Sebelum diurutkan :";
for(i=1;i<=x;i++)
{
cout<<" "<<a[i];
}
cout<<endl;
for(i=1;i<=x;i++)
{
for(j=1;j<=i;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
cout<<"\n # "<<i<<" : ";
for(k=1;k<=i;k++)
{
cout<<" "<<a[k];
}
}
cout<<"\n\n data Setelah diurutkan secara descending : ";
for(i=1;i<=x;i++)
{
cout<<" "<<a[i];
}
getch();
}

