Pengertian Sorting
Sorting
adalah cara mengurutkan data yang berada dalam suatu tempat penyimpanan dengan
urutan tertentu (Ascending) mengurutkan nilai terkecil sampai nilai terbesar.
(Discending) mengurutkan nilai terbesar samapi nilai terkecil.
Selection Sort
Selection
sort adalah cara mengurutkan data dimana
elemen di bandingkan satu persatu sampai pada elemen terakhir dan disusun
berdasarkan ketentuan (ascending stau discending).
Cara kerja Selection sort :
-
Pengecekan dimulai dari data ke -1 sampai data
ke -n.
- Tentukan bilangan dengan indeks terkecil dari bilangan tersebut.
- Tukar bilangan dengan indeks terkecil tersebut dengan bilangan pertama dari data bilangan tersebut.
- Begitu seterusnya samapai semua data terurutkan.
- Tentukan bilangan dengan indeks terkecil dari bilangan tersebut.
- Tukar bilangan dengan indeks terkecil tersebut dengan bilangan pertama dari data bilangan tersebut.
- Begitu seterusnya samapai semua data terurutkan.
Insertion Sort
Insertion
sort adalah metode pengurutan data dengan cara membandingkan dua elemen data
pertama, mengurutkannya, kemudian menecek elemen data berikutnya satu persatu
den membandingkannya dengan elemen data yang telah diurutkan. Karena metode ini
bekerja dengan membandingkan elemen-elemen data yang akan di urutkan.
Proses Insertion Sort :
-
Data dicek satu persatu dari yang ke dua samapai
dengan data yang terakhir.
- Apabila ditemukan data yang lebih kecil dari pada data sebelumnya, maka data tersebut akan disisipkan pada posisi yang sesuai.
- Apabila ditemukan data yang lebih kecil dari pada data sebelumnya, maka data tersebut akan disisipkan pada posisi yang sesuai.
Contoh Program Selection Sort
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <iomanip.h>
main()
{
int x[5];
int i;
int temp;
int minindex;
int j;
clrscr();
cout<<" >> Selamat Datang di Program Selection Sort << \n" <<endl;
cout<<"masukkan nilai x :\n";
for(i=0; i<5; i++)
{
cout<<"x["<<i<<"] = ";cin>>x[i];
}
cout<<"\n data sebelum di sort :";
for(i=0; i<5;i++)
{
cout<<setw(4)<<x[i];
}
for(i=0; i<5-1; i++) //perulangan iterasi
{
minindex=i;
for(j=i+1; j<5; j++) //perulangan membandingkan data
{
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; i++)
{
cout<<setw(4)<<x[i];
}
getch();
}
#include <conio.h>
#include <stdio.h>
#include <iomanip.h>
main()
{
int x[5];
int i;
int temp;
int minindex;
int j;
clrscr();
cout<<" >> Selamat Datang di Program Selection Sort << \n" <<endl;
cout<<"masukkan nilai x :\n";
for(i=0; i<5; i++)
{
cout<<"x["<<i<<"] = ";cin>>x[i];
}
cout<<"\n data sebelum di sort :";
for(i=0; i<5;i++)
{
cout<<setw(4)<<x[i];
}
for(i=0; i<5-1; i++) //perulangan iterasi
{
minindex=i;
for(j=i+1; j<5; j++) //perulangan membandingkan data
{
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; i++)
{
cout<<setw(4)<<x[i];
}
getch();
}
Contoh Program Insertion Sort
#include <iostream>
#include <conio.h>
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"<<endl;
//Input Data
cout<<"Masukkan Jumlah Data : ";
cin>>n;
cout<<"\n";
for(int i=1;i<=n;i++)
{
cout<<"Masukkan data ke "<<i<<" : ";
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<<" "<<data[i];
}
cout<<"\n\nSorting Selesai";
getch();
}
Semoga artikel ini bisa bermanfaat ....
Sumber Refrensi :
Sumber Refrensi :
10 Langkah Belajar logika dan algoritma, menggunakan bahasa c dan c++