sorting (Buble dan Quick)
- Sorting
Sorting adalah kumpulan langkah sistematis atau secara berutan untuk memperoleh hasil yang diinginkan. Salah satu contoh dari algoritma untuk langkah ini adalah Sorting (pengurutan). Sorting dapat didefinisikan sebagai pengurutan sejumlah data berdasarkan nilai tertentu. Pengurutan dapat dilakukan dari nilai terkecil ke nilai terbesar (ascending) atau sebaliknya.
1. Buble\Exchange sort
2. Selection sort
3. Quick sort
- Bubble/Exchange sort
Diberi nama "Bubble" karena proses pengurutan
secara berangsur-angsur bergera/berpindah ke posisi yang tepat , seperti
gelembung yang keluar dari sebuah gelas bersoda. Bubble sort mengurutkan
data dengan cara membandingkan elemen sekarang dengan elemen berikutnya. jika
elemen sekarang lebih besar dari elemen berikutnya maka elemen tersebut
ditukar (untuk pengurutan ascending) jika elemen sekarang lebih
kecil daripada elemen berikutnya, maka kedua elemen tersebut ditukar
(untuk pengurutan descending). algoritma ini seolanh olah menggeser satu per
satu elemen dari kenan ke kiri atau kiri ke kanan. tergantung jenis
pengurutannya. Ketika suatu proses telah selesai, maka bubble
sort akan mengalami proses, demikian seterusnya. Bubble sort berhenti
jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa
dilakukan,serta tercapai pengurutan yang telah diinginkan
Contoh pengurutan data yang dilakukan dengan metode bubble sort seperti berikut:
Proses 1:
22 10 15 3 8 2
22 10 15 3 2 8
22 10 15 2 3 8
22 10 2 15 3 8
22 2 10 15 3 8
2 22 10 15 3 8
2 22 10 15 3 8
Pengecekan dimulai dari data yang paling akhir,
kemudian dibandingkan dengan data di depannya,jika data didepannya lebih besar
maka akan di tukar.
Proses 2:
2 22 10 15 3 8
2 22 10 15 3 8
2 22 10 3 15 8
2 22 3 10 15 8
2 3 22 10 15 8
2 22 10 15 3 8
2 22 10 15 3 8
2 22 10 3 15 8
2 22 3 10 15 8
2 3 22 10 15 8
pengecekan dilakukan sampai dengan data ke-2 karena data pertama pasti sudah paling kecil.
Proses 3 :
2 3 22 10 15 8
2 3 22 10 8 15
2 3 22 8 10 15
2 3 8 22 10 15
Proses 4 :
2 3 8 22 10 15
2 3 8 22 15 10
2 3 8 15 22 10
Proses 5 :
2 3 8 15 22 10
2 3 8 15 10 22
Contoh listening:
#include<iostream>
#include<conio.h>
using namespace std;
main()
{
int i,j,n,data[100],save,k;
cout<<" Masukkan banyak data : ";cin>>n;
for(i=1;i<=n;i++)
{
cout<<" Data "<<i<<" :
";cin>>data[i];
}
cout<<" Awal : "<<endl;
for(i=1;i<=n;i++)
cout<<data[i]<<" "<<endl;
for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
{
if(data[j]>data[j+1])
{
save=data[j];
data[j]=data[j+1];
data[j+1]=save;
}
}
}
cout<<" Hasilnya : "<<endl;
for(i=1;i<=n;i++)
cout<<data[i]<<" ";
getch();
}
dan contoh hasil Running listening:
Cara
kerja metode ini didasarkan pada pencarian elemen dengan nilai terkecil.
kemudian dilakukan penukaran dengan elemen ke-I. Secara singkat metode ini bisa
dijelaskan sebagai berikut. Pada langkah pertama, dicari data yang terkecil
dari data pertama sampai terakhir. Kemudian data tersebut kita tukar dari data
pertama. Dengan demikian, data pertama sekarang mempunyai nilai paling kecil
dibanding dengan data lain. Pada langkah kedua, data terkecil kita cari mulai
dari data kedua sampai data terakhir. Data terkecil yang kita peroleh kita
tukar dengan data kedua. Demikian seterusnya sampai seluruh data terurut.
2. quick Sort
Metode ini dikembangkan oleh CAR Hoare. Secara
garis besar metode ini dijelaskan sebagai berikut. Misalnya kita ingin
mengurutkan data A yang membunyai N elemen. Kita pilih sembarang elemen dari
data tersebut, biasanya elemen pertama, misalnya X. Kemudain semua elemen
tersebut disusun dengan menempatkan X pada posisi J sedemikian rupa shingga
elemen ke 1 sampai ke J-1 mempuyai nilai lebih besar dari X. Sampai berikutnya
diulang untuk setiap sub data
Contoh dari proses Sorting dengan menggunakan
metode Quick sort.
ketikka proses
pengukuran dilakukan secara rekursif (berulang) maka menghasilkan partisi hanya
satu elemen saja dan kemudian digabung kembali sehingga terlihat bahwa data
telah berurutan untuk lebih jelasnya dalam memahami proses algoritma
sorting dengan mempelajari alqoritma dalam quick sortnya seperti dibawah:
Contoh dalam
proses program listening:
#include
<iostream>
using namespace
std;
void
quick_sort(int[],int,int);
int
partition(int[],int,int);
int main()
{
int n,i;
n
=6;
int a[]={22,10,15,3,8,2};
cout<<"\nData sebelum pengurutan:\n";
for(i=0;i<n;i++)
cout<<a[i]<<" , ";
quick_sort(a,0,n-1);
cout<<"\nData setelah dilakukan quick sort:\n";
for(i=0;i<n;i++)
cout<<a[i]<<" , ";
return 0;
}
void
quick_sort(int a[],int l,int u)
{
int j;
if(l<u)
{
j=partition(a,l,u);
quick_sort(a,l,j-1);
quick_sort(a,j+1,u);
}
}
int
partition(int a[],int l,int u)
{
int v,i,j,temp;
v=a[l];
i=l;
j=u+1;
do
{
do
i++;
while(a[i]<v&&i<=u);
do
j--;
while(v<a[j]);
if(i<j)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}while(i<j);
a[l]=a[j];
a[j]=v;
return(j);
}
contoh hasil
Running listening:
Referensi :http://ilmuduniainformatika.blogspot.com/2013/01/algoritma-sorting.html
Komentar
Posting Komentar