TUGAZ SORTING/INSERTION SORT

INSERTION SORT

mencari tempat yang tepat untuk suatu elemen data yang telah diketahui ke dalam sub kumpulan data yang telah terurut, kemudian melakukan penyisipan (insertion) data di tempat yang tepat tersebut. 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.

Procedure Insertion Sort Ascending :

Kondisi awal:

�� Unsorted list = data

�� Sorted list = kosong

�� Ambil sembarang elemen dari unsorted list, sisipkan

(insert) pada posisi yang benar dalam sorted list.

�� Lakukan terus sampai Unsorted list habis.

�� Bayangkan anda mengurutkan kartu.

insertion1

Programnya :

#include <iostream.h>

#include <conio.h>

int data[100],data2[100];

int n;

void tukar(int a,int b)

{

int 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;

}

cout<<“insertion sort selesai!”<<endl;

}

void Input()

{

cout<<“Masukkan jumlah data = “; cin>>n;

for(int i=0;i<n;i++)

{

cout<<“Masukkan data ke-“<<(i+1)<<” = “; cin>>data[i];

data2[i] = data[i];

}

}

void Tampil()

{

cout<<“Data : “<<endl;

for(int i=0;i<n;i++)

{

cout<<data[i]<<” “;

}

cout<<endl;

}

void AcakLagi()

{

for(int i=0;i<n;i++)

{

data[i] = data2[i];

}

cout<<“Data sudah teracak!”<<endl;

}

void main()

{

int pil;

clrscr();

do

{

clrscr();

cout<<“Program Sorting Komplit!!!”<<endl;

cout<<“*********************************************”<<endl;

cout<<” 1. Input Data”<<endl;

cout<<” 2. Insertion Sort”<<endl;

cout<<” 3. Tampilkan Data”<<endl;

cout<<” 4. Acak Data”<<endl;

cout<<” 5. Exit”<<endl;

cout<<” Pilihan Anda = “; cin>>pil;

switch(pil)

{

case 1:Input(); break;

case 2:insertion_sort(); break;

case 3:Tampil(); break;

case 4:AcakLagi(); break;

}

getch();

}while(pil!=5);

}

~ by rusdia on July 1, 2009.

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

 
%d bloggers like this: