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;
}
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