Home » » Insertion Sort Pada Borland C++

Insertion Sort Pada Borland C++

Written By MDC Media on Friday, 18 May 2012 | 17:04


Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya. Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka akan ditempatkan (diinsert) diposisi yang seharusnya. Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang









Sourch Code Inserion SOrt

void insertion_sort(int data[])
{
int temp;
for(int 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;
}
}


Pengurutan dengan penyisipan (insertion sort) adalah suatu metode yang melakukan pengurutan dengan cara menyisipkan data yang belum urut ke dalam bagian data yang telah diurutkan. Konsep ini biasa dilakukan pada permainan kartu. Ketika sebuah kartu baru didapatkan (hasil pembagian dari pengocokan kartu) kartu akan disisipkan oleh pemain pada posisi yang tepat sehingga penambahan kartu tersebut membuat semua kartu tetap terurutkan.

Mengurutkan kartu dengan metode penyisipan kartu 7 disisipkan sehingga susunan kartu yang sebelumnya sudah urut tetap urut


"Bila L adalah larik dengan n elemen, mula-mula L[0] (elemen pertama) dianggap sebagai kumpulan data yang telah diurutkan, yang terdiri atas 1 buah data. Kemudian dilakukan penyisipan data dari L[1] sampai dengan L[n-1] ke dalam kumpulan data dari L[0] sampai dengan L[k-1] dengan 1<= k < n. Dalam hal ini penyisipan dilakukan pada tempat yang tepat sehingga data pada L[0] sampai dengan L[k] menjadi urut."



Algoritma :
SUBRUTIN selection_sort (L,n)
UNTUK k <-- 1 S/D n-1
X <--L[k]
//Sisipkan x ke dalam L[0..k-1]
I<-- k – 1
Ketemu <-- SALAH
ULANG SEMUA I >= 0 DAN TIDAK ketemu
JIKA x < L[I] MAKA
L[i + 1] <-- L[i]
i <--i – 1
SEBALIKNYA
Ketemu = BENAR
AKHIR – JIKA

L[i+1]<--x
AKHIR – ULANG
AKHIR – UNTUK
AKHIR – SUBRUTIN


Implementasi ke dalam program c++

#include <iostream.h>
#include <conio.h>

void tampilkan_larik(int data[],int n)
{
int i;

for (i=0; i<n;i++)
cout<<data[i]<<" ";
cout<<"\n";
}
void insertion_sort(int data[], int n)
{
int i,k;
int x;
int ketemu;
for (k=1; k<n; k++)
{
x=data[k];
//sisipkan x ke dalam data [0...k-1]

i=k-1;
ketemu=0;

while ((i>=0)&&(!ketemu))
{
if (x<data[i])
{
data[i+1]=data[i];
i=i-1;
}
else
ketemu=1;
data[i+1]=x;
}
}
}

int main()
{
const jum_data=8;

int i;
int data[]={25,57,48,37,12,92,80,33};
cout<<"Data sebelum diurut: "<<endl;
for(int ctr=0; ctr<8; ctr++)
{
cout<<data[ctr]<<" ";
}
insertion_sort(data, jum_data);

//hasil pengurutan
cout<<endl;
cout<<endl;
cout<<"Tampilkan Hasil Pengurutan: \n";
tampilkan_larik(data,jum_data);
getch();
}
Share this article :

0 comments:


Populer Post

Pengunjung

free counters
 
Support : Whisuma | Morodadi Computer Madiun | MDC Advertising |
Copyright © 2011. Morodadi Komputer M
Creating Website Published by Morodadi Computer dan Advertising Madiun
powered by MDCTEAM