Sorting / pengurutan biasanya dilakukan untuk tujuan mempermudah pencarian.
Pengurutan data baik dari segi ascending (dari nilai terkecil ke terbesar) atau
descending (dari nilai terbesar ke terkeci). Ketika akan melakukan sortir di
komputer, maka hal-hal yang akan mempertimbangkan, meliputi :
1. Perlu tidaknya data disortir
2. Besarnya atau banyaknya data yang akan disortir
3. Kemampuan atau kapasitas computer atau media penyimpanan data
4. Metode sortir
Teknik sortir sangat erat kaitannya dengan proses perbandingan dan penukaran tempat antar elemen data. Waktu terbaik akan diperoleh ketika susunan elemen datanya sudah sama dengan susunan yang diinginkan melalui sortirnya. Waktu terburuk akan didapatkan ketika susunan elemen – elemen datanya terbalik dari susunan yang dikehendaki sortirnya. Waktu rata-rata diperoleh dengan memperhitungkan berbagai susunan bentuk elemen-elemen datanya.
1. Perlu tidaknya data disortir
2. Besarnya atau banyaknya data yang akan disortir
3. Kemampuan atau kapasitas computer atau media penyimpanan data
4. Metode sortir
Teknik sortir sangat erat kaitannya dengan proses perbandingan dan penukaran tempat antar elemen data. Waktu terbaik akan diperoleh ketika susunan elemen datanya sudah sama dengan susunan yang diinginkan melalui sortirnya. Waktu terburuk akan didapatkan ketika susunan elemen – elemen datanya terbalik dari susunan yang dikehendaki sortirnya. Waktu rata-rata diperoleh dengan memperhitungkan berbagai susunan bentuk elemen-elemen datanya.
1. Bubble Sort
Bubble Sort atau metode gelembung adalah metode pengurutan dengan cara melakukan penukaran data dengan tempat disebelahnya jika data sebelum lebih besar dari pada data sesudahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan, atau telah terurut dengan benar. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci atau data akan dengan lambat menggelembung atau membandingan data ke posisinya yang tepat.
Metode ini mudah dipahami dan diprogram, tetapi bila dibandingkan dengan metode lain yang kita pelajari, metode ini merupakan metode yang paling tidak efisien karena memiliki banyak pertukara sehingga memerlukan pengalokasian memori yang besar untuk menjalankan metode ini.
Kelebihan Bubble sort :
- Metode Bubble sort adalah metode yang paling simpel
- Metode Bubble sort mudah dimengerti algoritmanya
Contoh Program Bubble Sort :
#include<iostream.h>
#include<conio.h>
void Selsort(int X[], int SIZE)
{
int pos,small,temp;
for (int i=0; i<SIZE-1; i++) {
small=X[i];
for (int j=i+1; j<SIZE; j++)
{
if (X[j]<small)
{small=X[j];
pos=j;}
}
temp=X[i];
X[i]=X[pos];
X[pos]=temp;
} }
void main(void)
{ clrscr();
int A[10];
int size;
cout<<"\n Enter array
size :";
cin>>size;
cout<<"\n Enter array
elements :";
for (int i=0; i<size; i++)
{
cin>>A[i];
}
Selsort(A,size);
cout<<"\n The sorted
array is as shown below :";
for (int l=0; l<size; l++)
{cout<<A[l];}
getch();
}
Contoh Gambar Cara Kerja Bubble Sort :
2. Selection Sort
Selection Sort adalah metode yang digunakan dengan
cara memilih data yang akan diurutkan menjadi dua bagian, yang belum diurutkan,
dan meja yang telah diurutkan. Elemen pertama yang diambil dari bagian array
yang belum diurutkan dan kemudian diletakan pada posisinya sesuai dengan bagian
lain array yang telah di urutkan. Tahapan ini dilakukan secara berulang-ulang
hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum
diurutkan.
Contoh Program Selection Sort :
#include <conio.h>
#include <stdio.h>
void tampilkan_larik(int data[], int n)
{
int i;
for (i=0;i<n;i++)
cout<<data[i]<<" ";
cout<<endl<<endl;
}
void selection_sort(int data[], int n)
{
int posmin, posawal, j, tmp;
for(posawal=0;posawal<n-1;posawal++)
{
posmin=posawal;
for (j=posawal+1;j<n;j++)
if(data[posmin]>data[j])
posmin=j;
//tukarkan
tmp=data[posawal];
data[posawal]=data[posmin];
data[posmin]=tmp;
cout<<"\n Hasil ketika Posawal = "<<posawal<<" : ";
tampilkan_larik(data,n);
}
}
int main ()
{
int data[50], i,n;
cout<<"\n@ SIMULASI SELECTION SORT
@\n\n\n";
cout<<"=========================================\n";
cout<<"
masukkan banyak data : ";
cin>>n;
clrscr();
for (int a=0;a<n;a++)
{
cout<<"\n masukkan
data ke "<<a<<" : ";
cin>>data[a];
}
selection_sort(data,n);
//hasil pengurutan
cout<<"\n\n hasil pengurutan : \n\n";
cout<<" ";
tampilkan_larik(data,n);
cout<<"\n SORTING
SELESAI...................";
getch();
clrscr();
cout<<"-----------------------";
cout<<"by: hamba Allah, 2014";
cout<<"-----------------------";
getch();
return 0;
}
Contoh Gambar Cara Kerja Selection Sort :
3. Insertion Sort
Insertion Sort adalah Metode Literasi (pengulangan) yang menginsert atau menyisipkan setiap elemen ketempat yang sesuai(setelah dibandingkan dengan elemen kiri dan kanannya) atau kita bisa mengumpamakan metode ini seperti bermain kartu, yaitu satu demi satu akan menginsert ketempat yang sesuai.
Contoh Program Insertion Sort :
#include <iostream.h>
#include <conio.h>
#define ELEMENTS 6
void insertion_sort(int x[], int length){
int key, i;
for(int j=0; j<length;j++){
key=x[j];
i=j-1;
while(x[i]>key&&i>=0){
x[i+1]=x[i];
i--;
}
x[i+1]=key;
}
}
int main(){
int A[ELEMENTS]={9,2,7,5,4,3};
int x;
cout<<"array yang belum di
sort:";
for(x=0;x<ELEMENTS;x++){
cout<<A[x];
}
cout<<endl;
insertion_sort(A,ELEMENTS);
cout<<"Array yang sudah di
sort:";
for(x=0;x<ELEMENTS;x++){
cout<<A[x];
}
getch();
return 0;
}
Contoh Gambar Cara Kerja Insertion Sort :
Tidak ada komentar:
Posting Komentar