Sabtu, 31 Desember 2011

Bubble - Exchange Sort

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


    int batas;
    void tukar(int *a,int *b)
    {
    int t=*a;
    *a = *b;
    *b = t;
    }
   
   
    //BUBBLE SORT
    void bubble_sort(int data[])
    {
    int i,j,kode;

   
        cout<<endl;
        cout<<"Metode Bubble Sort"<<endl<<endl;
        cout<<"1. Ascending"<<endl;
        cout<<"2. Descending"<<endl<<endl;

        cout<<"Asc or Desc? : ";
        cin>>kode;



        switch(kode)
        {
        case 1 :
       
            for(i=1;i<batas;i++)
            {
            for(j=batas-1;j>=i;j--)
            {
            if(data[j]<data[j-1]) tukar(&data[j],&data[j-1]);
            }
            }
            cout<<"Ascending : ";
            for(i=0;i<batas;i++)
            {
                    cout<<data[i]<<" ";
            }
            cout<<endl<<endl;
            break;
       
        case 2 :
       
            for(i=1;i<batas;i++)
            {
            for(j=batas-1;j>=i;j--)
            {
            if(data[j]>data[j-1]) tukar(&data[j],&data[j-1]);
            }
            }
            cout<<"Descending : ";
            for(i=0;i<batas;i++)
            {
                    cout<<data[i]<<" ";
            }
            break;
            cout<<endl<<endl;
        }
    }


    //EXCHANGE SORT
    void exchange_sort(int data[])
    {
    int i,j,kode;

        cout<<endl;
        cout<<"Metode Exchange Sort"<<endl<<endl;
        cout<<"1. Ascending"<<endl;
        cout<<"2. Descending"<<endl<<endl;

        cout<<"Asc or Desc? : ";
        cin>>kode;

        switch(kode)
        {
        case 1 :
           
            for (i=0; i<batas-1;i++)
            {
            for(j=i+1; j<batas;j++)
            {
            if (data [i] > data[j]) tukar(&data[i],&data[j]);
            }
            }
            cout<<"Ascending : ";
            for(i=0;i<batas;i++)
            {
                    cout<<data[i]<<" ";
            }
            cout<<endl<<endl;
            break;

        case 2 :
       
            for (i=0; i<batas-1;i++)
            {
            for(j=i+1; j<batas;j++)
            {
            if (data [i] < data[j]) tukar(&data[i],&data[j]);
            }
            }
            cout<<"Descending : ";
            for(i=0;i<batas;i++)
            {
                    cout<<data[i]<<" ";
            }
            cout<<endl<<endl;

            break;
        }

    }
   
    //------------------------------------------------------

    void main()
    {

    int i, kode;
    int data[10];


            cout<<"Rizky Amelia-10370014"<<endl;
            cout<<"---------------------"<<endl<<endl;
           
            cout<<"Masukkan Banyaknya Data : ";
            cin>>batas;
            cout<<endl;
   
            for(i=0; i<batas; i++)
            {
                    cout<<"Data ke - "<<i+1<<" adalah : ";
                    cin>>data[i];
            }

            //Menampilkan Data
            cout<<endl;
            cout<<"data semula            : ";
            for(i=0;i<batas;i++)
            {
            cout<<setw(4)<<data[i]<< " ";
            }
            cout<<endl<<endl;

    //--------------------------------------------------------

            cout<<"            === Menu === "<<endl<<endl;
            cout<<"1. Metode Bubble Sort"<<endl;
            cout<<"2. Metode Exchange Sort"<<endl<<endl;

            cout<<"Pilih Metode : ";
            cin>>kode;

        switch(kode)
        {
        case 1:
            bubble_sort(data);

        break;

        case 2:
            exchange_sort(data);
        }
    }


1 komentar:

Rry mengatakan...

zzz

Posting Komentar

Template by:
Free Blog Templates