Kamis, 21 Mei 2015

Contoh Coding Bucket Sorting



bucket adalah algoritma sorting yang bekerja dengan partisi array ke dalam jumlah terbatas sort. Setiap kotak ini kemudian diurutkan secara individual, baik menggunakan algoritma sorting yang berbeda, atau dengan rekursif menerapkan algoritma bucket sort.berikut ini contoh coding dari program bucket sorting.  monggo silahkan dicoba


Contoh program :


#define NUMELTS 100
#include <stdio.h>
#include <iostream.h>

class element
{
public:
    int value;
    element *next;
    element()
    {
    value=NULL;
    next=NULL;
    }
};

class bucket
{
public:
element *firstElement;
bucket()
{
firstElement = NULL;
}
};

void main()
{
    int lowend=0;
    int highend=100;
    int interval=10;
    const int noBuckets=(highend-lowend)/interval;
    bucket *buckets=new bucket[noBuckets];
    bucket *temp;

    for(int a=0;a<noBuckets;a++)
    {
        temp=new bucket;
        buckets[a]=*temp;
    }

    cout<<"--------The Elements to be Sorted using Bucket sort are ------------------\n";
    int array[]={12,2,22,33,44,55,66,77,85,87,81,83,89,82,88,86,84,88,99};

    for(int j=0;j<19;j++)
    {
    cout<<array[j]<<endl;
    element *temp,*pre;
    temp=buckets[array[j]/interval].firstElement;
        if(temp==NULL)
        {
            temp=new element;
            buckets[array[j]/interval].firstElement=temp;
            temp->value=array[j];
        }
        else
        {
            pre=NULL;
                while(temp!=NULL)
                   {
               if(temp->value>array[j])
                   break;
                   pre=temp;
                   temp=temp->next;
                   }
                if(temp->value>array[j])
                {
                    if(pre==NULL)
                    {
                        element *firstNode;
                        firstNode=new element();
                        firstNode->value=array[j];
                        firstNode->next=temp;
                        buckets[array[j]/interval].firstElement=firstNode;
                    }
                    else
                    {
                        element *firstNode;
                        firstNode=new element();
                        firstNode->value=array[j];
                        firstNode->next=temp;
                        pre->next=firstNode;
                    }
                }
                else
                {
                    temp=new element;
                    pre->next=temp;
                    temp->value=array[j];
                }

        }
 }

    cout<<"------------------------The Sorted Elements Are---------------\n";
    for(int jk=0;jk<10;jk++)
    {
        element *temp;
        temp= buckets[jk].firstElement;
            while(temp!=NULL)
            {
                cout<<"*"<<temp->value<<endl;
                temp=temp->next;
            }
    }
    cout<<"--------------------------------END--------------------------------\n";

}



Tidak ada komentar:

Posting Komentar