Translate

Jumat, 03 Maret 2017

Penjelasan, Perbedaan Dan Contoh Metode Metode Searching Aray

Bubble Sort -- Selection Sort -- Insertion Sort -- Exchange Sort

Salah satu bagian penting dari struktur data adalah sorting atau pengurutan data. Ada banyak sekali Algoritma pengurutan data di dunia komputer, yatu: bubble sort, selection sort, insertion sort, exchange sort, quick sort, merge sort, dll

Pengurutan arat terbagi dalam 2, yaitu pengurutan yang dimulai dari nilai terkecil ascending dan  yang kedua pengurutan yang dimulai dari nilai terbesar descending.  sedangkan metode metode dalam pengurutan data aray terbagi dalam 4 :
#. pengurutan berdasarkan perbandingan (bubble sort, exchange sort)
#. pengurutan berdasarkan prioritas (selection sort, heap sort)
#. pengurutan berdasarkan penyisipan dan penjagaan terurut (insertion sort, tree sort)
#. pengurutan berdasarkan pembagian dan penguasaan (quick sort, marge sort)
#. pengurutan berkurang menurun (shellsort)

kali ini hanya akan memberikan sedikit penjelasan lebih lanjut mengenai Bubble Sort -- Selection Sort -- Insertion Sort -- Exchange Sort. 

Bubble Sort 








Exchange Sort


 Selection Sort


Insertion Sort

Contoh 1:
menggunakan metode Bubble Sort.

#include<iostream>
#include<conio.h>
#include<stdio.h>

using namespace std;

int main()
{
    int data;
    cout<<"Masukkan banyak data : ";cin>>data;
       int A[data],i,j,tampung;
      
    cout<<endl;
    for(i=0;i<data;i++)
    {
        cout<<"Masukkan data : ";cin>>A[i];
       }

   cout<<"\nSebelum sorting :\n";
   for(i=0;i<data;i++)
       {
           cout<<A[i]<<" ";
       }
   
    cout<<endl;
    cout<<"\nproses sorting :";//awal logika yang digunakan
    for(int i=0;i<data;i++)
    {
        tampung=A[i];
        j=i-1;

        while(A[j]>tampung && j>=0)   
        {
            A[j+1]=A[j];

            j--;
        }   
        A[j+1]=tampung;
        getch ();   
           
            cout<<endl;
            for(int v=0;v<data;v++)//awal logika untuk menampilkan proses
            {
                cout<<A[v]<<" ";
            }
            //akhir lgika yang digunakan untuk menampilkan proses
       }//akhir logika yang digunakan
    getch ();
   
            cout<<endl;
            cout<<"\nsetelah sorting : ";
            for (i=0; i<5; i++)//menampilkan hasil sortiran yang digunakan
            {
                cout<<A[i]<<" ";
            }
   
    return 0;
    getch ();
}

Contoh 2:
menggunakan metode Exchange Sort

#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;

int main()
{
    int data;
       cout<<"Masukkan banyak data : ";cin>>data;
       int A[data],i,j,tampung;

    cout<<endl;
       for(int x=0;x<data;x++)
    {
        cout<<"Masukkan data : ";cin>>A[x];
       }
      
        cout<<endl;
           cout<<"Sebelum sorting:\n";
           for(i=0;i<data;i++)
        {
            cout<<A[i]<<" ";
           }
              
            cout<<endl;
            cout<<"\nproses sorting : \n";
               for (int i=0;i<data-1;i++)//awallogika pensortingan
            {
                  for(int j=i+1;j<data;j++)
                {
                    if(A[i]<A[j])
                    {
                        tampung=A[i];
                        A[i]=A[j];
                        A[j]=tampung;
                    }
                    getch();
                   
                        for(int v=0;v<data;v++)//untuk menampilkan proses sortingan
                        {
                            cout<<A[v]<<" ";
                        }
                       
                cout<<endl;
              }
            }//akhir logika pensortingan
            getch();
   
                    cout<<"\nsetelah sorting : ";
                    for (i=0; i<5; i++)
                    {
                        cout<<A[i]<<" ";
                    }   
    getch ();
    return 0;
}

Contoh 3:
menggunakan metode Selection Sort

#include<iostream>
#include<conio.h>
#include<stdio.h>

using namespace std;

int main()
{
    int data;
    cout<<"Masukkan banyak data : ";cin>>data;
    int A[data],i,j,tampung,pos;
   
    cout<<endl;
    for(int x=0;x<data;x++)
    {
        cout<<"Masukan data : ";cin>>A[x];
    }
   
        cout<<endl;
        cout<<"Sebelum sorting:\n";
        for(i=0;i<data;i++)
        {
            cout<<A[i]<<" ";
        }
       
        cout<<endl;
        cout<<"\nproses sorting : \n";
        for(int i=0; i<data-1; i++)//awal logika yang digunakan untuk mensorting
        {
            pos=i;
            for(int j=i+1; j<data; j++)
            {//mencari data terkecil
                if(A[j]<A[pos])
                {
                    pos=j;
                }
            }
       
                if (pos!=i)//jika data yang terkecil tidak sama dengan data yang pertama.
                {
                    tampung=A[pos];
                    A[pos]=A[i];
                    A[i]=tampung;
                }
                getch ();
   
                    for(int v=0;v<data;v++)//untuk menampilkan proses sortingan
                    {
                        cout<<A[v]<<" ";
                    }
               
            cout<<endl;  
        }//akhir logika yang digunakan
        getch();
   
                cout<<"\nsetelah sorting : ";
                for (i=0; i<data; i++)
                {
                    cout<<A[i]<<" ";
                }
       
    getch ();
    return 0;
}

Contoh 4:
menggunakan metode Insertion Sort

#include<iostream>
#include<conio.h>
#include<stdio.h>

using namespace std;

int main()
{
    int data;
    cout<<"Masukkan banyak aray : ";cin>>data;
    int A[data],i,j,tampung;
   
    cout<<endl;
    for (i=0; i<data; i++)
    {
        cout<<"Masukkan data : ";cin>>A[i];
    }
   
    cout<<endl;
    cout<<"Sebelum sorting :\n";
    for(i=0; i<data; i++)
    {
        cout<<A[i]<<" ";       
    }
   
    cout<<endl;
    cout<<"\nProses sorting : \n";
    for(int i=1; i<data; i++)
    {
        for(int j=data-1; j>=1; j--)
        {
            if(A[j]<A[j-1])
            {
                tampung=A[j];
                A[j]=A[j-1];
                A[j-1]=tampung;
            }
        }
        getch ();
       
            for(int v=0; v<data; v++)
            {
                cout<<A[v]<<" ";
            }
        cout<<endl;
    }
    getch();
   
    cout<<endl;
    cout<<"Setelah sorting : ";
    for (i=0; i<data; i++)
    {
        cout<<A[i]<<" ";
    }

getch ();
return 0;
}

untuk mengetahui bagaimana hasil dari logika ini silahkan copy codingan diatas dan runing menggunakan compailer apapun yang mendukung bahasa C++.
Jika ada yang tidak dimengerti silahkan bertanya di kolom komentar
 

Tidak ada komentar:

Posting Komentar