Skip to main content

Radix Sort in C Language


Program to implement Radix Sort in C 

#include<stdio.h>
#include<conio.h>

typedef struct queue
{
   int front,rear;
   int item[10];
}q;

void enqueue(q* qp,int val)
{
   (qp)->rear++;
   (qp)->item[(qp)->rear]=val;
   return;
}
int dequeue(q* qp)
{
   int val;
   val=(qp)->item[(qp)->front];
   (qp)->front++;
   return val;
}
int empty(q* qp)
{
   if((qp)->rear<(qp)->front)
 return 1;
   return 0;
}
void radix(int*a,int m,int n)
{
   q qu[10];
   int i,j,r,d=1,k;
   for(i=1;i<=m;i++)
   {
 for(j=0;j<10;j++)
 {
qu[j].rear=-1;
qu[j].front=0;
 }
 for(j=0;j<n;j++)
 {
r=a[j]%(d*10);
r=r/d;
enqueue(&qu[r],a[j]);
 }
 d*=10;
 k=0;
 for(j=0;j<10;j++)
 {
 while(empty(&qu[j])==0)
a[k++]=dequeue(&qu[j]);
 }
   }
   return;
}
void main()
{
   int a[10],i,no,max=a[0],count=0;
   clrscr();
   printf("\n\n Enter no of elements..");
   scanf("%d",&no);
   printf("\n\n Enter the elements..");
   for(i=0;i<no;i++)
   {
 scanf("%d",&a[i]);
 if(a[i]>max)
max=a[i];
   }
   while(max>0)
   {
 max=max/10;
 count++;
   }
   radix(a,count,no);
   printf("\n\n The sorted elements are..");
   for(i=0;i<no;i++)
 printf("%d\t",a[i]);
   getch();
}

Comments

Popular posts from this blog

Use Case Diagram for Online Book Store

Occurrences of each letter of alphabet in the text

Program to print a table indicating the no. of occurrences of each letter of alphabet in the text entered as command line arguments. #include<iostream> #include<string> using namespace std; int main(int argc, char *argv[]) { string str=""; static int alphabet[26]; int x; cout<<"\n\n Command-Line Argument\n"; for(int i=0;i<argc;i++) { cout<<"\n "<<argv[i]; str+=argv[i]; } for(int i=0;i<str.length();i++) { if(str[i]>='A' && str[i]<='Z') { x=((int)str[i])-65; alphabet[x]++; } else if(str[i]>='a' && str[i]<='z') { x=((int)str[i])-97; alphabet[x]++; } } //Displaying No. of occurrences of each alphabets in the command line argument cout<<"\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n Alphabet No. of Occurrences\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"; for(int i=0;i<26;i++)...

Linear search & Binary search using Template

Write a program to search an element from a list. Give user the option to perform Linear or Binary search. Use Template functions. #include<iostream> using namespace std; template <class T> void Lsearch(T *a, T item, int n) { int z=0; for(int i=0;i<n;i++) { if(a[i]== item) { z=1; cout<<"\n Item found at position = "<<i+1<<"\n\n"; } else if(z!=1) { z=0; } } if(z==0) cout<<"\n Item not found in the list\n\n"; } template <class T> void Bsearch(T *a, T item, int n) { int beg=0,end=n-1; int mid=beg+end/2; while((a[mid]!=item) && (n>0)) { if(item>a[mid]) beg=mid; else end=mid; mid=(beg+end)/2; n--; } if(a[mid]==item) cout<<"\n Item found at position = "<<mid+1<<"\n\n"; else cout<<"\n Item not found in the list\n\n"; } void main() { int iarr[10] = {2,42,56,86,87,99,323,546,767,886};...