Insertion Sort C++

Metode insertion sort ini akan lebih mudah dipahami dengan secara langsung mempelajari setiap tahapnya.

Tahap 1 :
Dimulai dari A[1]
Simpan nilai A[1] pada sebuah variabel (misal x)
Geser masing-masing satu langkah ke kanan semua nilai yang berada pada kiri A[1] satu per satu jika nilai tersebut lebih besar dari x
Insert (sisipkan) x di bekas tempat nilai yang terakhir digeser.

Tahap 2 :

Simpan nilai A[2] pada variabel x.
Geser masing-masing satu langkah ke kanan semua nilai yang berada pada kiri A[2] satu per satu jika nilai tersebut lebih besar dari x
Insert (sisipkan) x di bekas tempat nilai yang terakhir digeser.

Tahap berikutnya dan seterusnya hingga terakhir tahap ke N-1 (untuk array dengan N elemen).
Instruksi pergeseran ke kanan adalah A[i]=A[i – 1], sehingga nilai A[i] akan hilang (ditimpa oleh nilai A[i-1] oleh karena itu pada awal tahap A[i] disimpan pada sebuah variabel.

Contoh coding program untuk Insertion Sort :

#include
#include
using namespace std;
void cetak(int *arr, int n) //print array elements
{
int i=0;
for(i=0;i<n;i++)
cout<<arr[i] << " " ;
cout << endl;
}

void insertionSort(int *arr, int n)//Bubble sort function
{
int i;
int j ;
int minIndex,tmp;
for(i=0;i 0) && (tmp < arr[j-1]))
{
arr[j] = arr[j-1];
j–;
}
arr[j]=tmp;
}
}

int main()
{

int a[]={9,6,5,23,2,66,14,8,2,7,1,8}; // array to sort
cetak(a,12); // print elements
insertionSort(a,12); //call to bubble sort
cetak(a,12); // print elements
return 0;
}

Selemat Berexplore kawanπŸ˜€

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s