#include #include #include class element //element { public: int value; element *next; element() { value=NULL; next=NULL; } }; class bucket //bucket containing a perticular range of values { public: element *firstElement; bucket() { firstElement = NULL; } }; void main() { int lowend=0; // minimum element int highend=100; //max element int interval=10; //number of intervals const int noBuckets=(highend-lowend)/interval; //number of buckets required bucket *buckets=new bucket[noBuckets]; bucket *temp; for(int a=0;avalue=array[j]; } else { pre=NULL; while(temp!=NULL) //move till the appropriate position in the bucket { if(temp->value>array[j]) break; pre=temp; temp=temp->next; } if(temp->value>array[j]) //if the new value is in betwen or at the begining { if(pre==NULL) //insertion at first if the bucket has elements already { element *firstNode; firstNode=new element(); firstNode->value=array[j]; firstNode->next=temp; buckets[array[j]/interval].firstElement=firstNode; } else //insertion at middle { element *firstNode; firstNode=new element(); firstNode->value=array[j]; firstNode->next=temp; pre->next=firstNode; } } else// if the new value is to be created at last of bucket { 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<<"*"<value<next; } } cout<<"--------------------------------END--------------------------------\n"; }