SELECTION SORT
Merupakan sebuah metode pengurutan. Memindahkan elemen
dengan cara membandingkan elemen sekarang dengan elemen yang berikutnya sampai
dengan elemen terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen
sekarang maka dicatat posisinya dan kemudian ditukar dan begitu seterusnya.
Proses pada selection sort:




Contoh
Terdapat suatu variable array dimana nilai dalam array
tersebut :
NILAI[8] = { 44, 55, 12, 42, 94, 18, 6, 67 }
Penyelesaian
INSERTION SORT
Insertion sort adalah sebuah
metode pengurutan data dengan menempatkan setiap elemen data pada pososinya
dengan cara melakukan perbandingan dengan data – data yang ada. Algoritma ini
akan mudah anda kuasi jika sering bermain Game Remi, Domino, Main Minum, dll. Ide algoritma dari metode
insertion sort ini dapat dianalogikan sama seperti mengurutkan kartu. Jika
suatu kartu dipindah tempatkan menurut posisinya, maka kartu yang lain akan
bergeser mundur atau maju sesuai kondisi pemindahanan kartu tersebut.
Contoh Algoritmanya:
Data awal sebelum di urutkan, asumsi
pertama anggaplah data indek ke- sudah benar
Data
awal sebelum di urutkan, asumsi pertama anggaplah data indek ke-0 sudah benar
Step 1
Bandingkan
data index ke 0 dan ke 1, Jika data index ke 1 lebih kecil, datanya ditukar
Step 2
Bandingkan data index
ke 2 dengan ke 1 dan 0, Jika lebih kecil, selipkan pada posisi yang tepat
Step 3
Bandingkan data index
ke 3 dengan data didepannya. Jika lebih kecil, selipkan pada posisi yang tepat.
Jika tidak biarkan data tersebut
Step 4
Bandingkan data index ke 4 dengan data didepannya. Jika
lebih kecil, selipkan pada posisi yang tepat. Data yang lain akan mundur
posisinya, karena ada data yang maju.
Step 5
Bandingkan data index ke 5 dengan data didepannya. Jika
lebih kecil, selipkan pada posisi yang tepat. Data yang lain akan mundur
posisinya, karena ada data yang maju.
Contoh Program Sorting
#include<iostream.h>
#include<conio.h>
int data[10],data2[10];
int n;
void tukar(int a, int b)
{
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}
void selection_sort()
{
int pos,i,j;
for(i=0;i<n-1;i++)
{
pos=i;
for(j=i+1;j<n;j++)
{
if(data[j]<data[pos])pos=j;
}
if(pos!=i) tukar(pos,i);
}
cout<<"selection sort selesai !"<<endl;
cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}
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;
cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<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 main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<"1. Input Data"<<endl;
cout<<"2. Selection Sort"<<endl;
cout<<"3. Insertion Sort"<<endl; //tambahkan
cout<<"4. Exit"<<endl;
cout<<"Masukkan Pilihan anda = ";
cin>>pil;
switch(pil)
{
case 1: input();break;
case 2: selection_sort();break;
case 3: insertion_sort();break; //tambahkan
}
getch();
}
while(pil!=4);
}
#include<conio.h>
int data[10],data2[10];
int n;
void tukar(int a, int b)
{
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}
void selection_sort()
{
int pos,i,j;
for(i=0;i<n-1;i++)
{
pos=i;
for(j=i+1;j<n;j++)
{
if(data[j]<data[pos])pos=j;
}
if(pos!=i) tukar(pos,i);
}
cout<<"selection sort selesai !"<<endl;
cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}
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;
cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<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 main()
{
int pil;
clrscr();
do
{
clrscr();
cout<<"1. Input Data"<<endl;
cout<<"2. Selection Sort"<<endl;
cout<<"3. Insertion Sort"<<endl; //tambahkan
cout<<"4. Exit"<<endl;
cout<<"Masukkan Pilihan anda = ";
cin>>pil;
switch(pil)
{
case 1: input();break;
case 2: selection_sort();break;
case 3: insertion_sort();break; //tambahkan
}
getch();
}
while(pil!=4);
}
Screenshot program Sorting
Tidak ada komentar:
Posting Komentar