Tuesday, 21 October 2014

C++ program to implement radix sort

C++ program to sort list of numbers using radix sort algorithm.


C++ program to implement radix sort

#include<iostream>
using namespace std;
class sort_list
{
    int data[20];
    int n1,n;
public:
    void get_data();
    void radix_sort();
    void display();
};
void sort_list::get_data()
{
    cout<<"How many elements two be entered ";
    cin>>n;
    cout<<"Enter the elements ";
    for(int i=0;i<n;i++)
        cin>>data[i];
}
void sort_list::radix_sort()
{
    int a[10][11],max=data[0],k,mod;
    for(int i=1;i<n;i++)
        if(max<data[i])
            max=data[i];
    for(int z=0;z<10;z++)
        a[z][0]=0;
    for(int i=10;i<=max*10;i*=10)
    {
        for(int y=0;y<n;y++)
        {
            mod=(data[y]/i)%10;
            a[mod][a[mod][0]+1]=data[y];
            a[mod][0]++;
        }
        for(int y=0,k=0;y<10;y++)
        {
            if(a[y][0]!=0)
            {
                for(int z=1;z<=a[y][0];z++,k++)
                    data[k]=a[y][z];
                if(k==n)
                   break;
                a[y][0]=0;
            }
        }
    }
}
void sort_list::display()
{
    cout<<"Sorted list : ";
    for(int i=0;i<n;i++)
        cout<<data[i]<<" ";
}
int main()
{
    sort_list sort;
    sort.get_data();
    sort.radix_sort();
    sort.display();
    return 0;
}

No comments:

Post a Comment