Kamis, 04 Juni 2015

Insertion Sort dan Selection Sort

Selection Sort

Metode selection sort merupakan perbaikan dari metode bubble sort dengan  mengurangi jumlah perbandingan. Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dimulai dari data diposisi 0 hingga diposisi N-1. Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1 maka algoritma pengurutan dengan metode selection sort adalah sebagai berikut:
1. Cari data terkecil dalam interval j = 0 sampai dengan j = N-1
2. Jika pada posisi pos ditemukan data yang terkecil, tukarkan data diposisi pos dengan data di posisi i jika k.
3. Ulangi langkah 1 dan 2 dengan j = j+i sampai dengan j = N-1, dan seterusnya sampai j = N - 1.

Berikut adalah contoh Selection Sort :

#include
#include
#include
#include
main()
{
int x[5];
int i;
int temp;
int minindex;
int j;

clrscr();
cout<<" >> Welcome To The Program Selection Sort << \n" <
cout<<"masukkan nilai x :\n";
for(i=0; i<5 font="" i="">
{
cout<<"x["<>x[i];
}
cout<<"\n data sebelum di sort :";
for(i=0; i<5 font="" i="">
{
cout<
}
for(i=0; i<5-1 font="" i="" iterasi="" perulangan="">
{
minindex=i;
for(j=i+1; j<5 data="" font="" j="" membandingkan="" perulangan="">
{
if(x[minindex]>x[j])
{
minindex=j;
}
}
temp=x[i];
x[i]=x[minindex];
x[minindex]=temp;
}
cout<<"\n\nData setelah di sort :";
for(i=0; i<5 font="" i="">
{
cout<
}
getch();
}


Insertion Sort
Metode pengurutan selection sort sering dipakai oleh orang saat bermain kartu bridge dalam mengurutkan kartunya, yaitu dengan cara menyisip kartu yang lebih kecil ke urutan sebelum posisi kartu yang dibandingkannya. Perhatikan tabel berikut.

Contoh Program Insertion Sort :

#include
#include
using namespace std ;
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 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;
 }
}
int main()
{
 cout<<"\t\t\t===PROGRAM INSERTION SORT===\n\n"<

 //Input Data
 cout<<"Masukkan Jumlah Data : ";
 cin>>n;
 cout<<"\n";
 for(int i=1;i<=n;i++)
 {
  cout<<"Masukkan data ke "<
  cin>>data[i];
  data2[i]=data[i];
 }

 insertion_sort();

 cout<<"\n\n";
 //tampilkan data
 cout<<"Data Setelah di Sort : ";
 for(int i=1; i<=n; i++)
 {
  cout<<" "<
 }
 cout<<"\n\nSorting Selesai";
 getch();
}


0 komentar:

Posting Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites