sorting (Buble dan Quick)


Hasil gambar untuk gambar sorting
  • 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

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
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:

1. Selection Sort


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.

Contoh dari proses sorting dengan menggunakan metode selection sort:
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

Postingan populer dari blog ini

QUEUE "ANTRIAN"

STACK C++

POINTER C++