OBJECTIVE-Write a C program to Sort the N Names in an Alphabetical Order.
ALGORITHM-
-Start from the first name and compare it with all other names
-if it is lexicographically large from others then swap both of them
-Repeat this process for n-1 names
CODE-
INPUT-
11
niteesh
ravi
ujjwal
vivek
zafar
nitin
jatin
deepak
ashish
shubham
anuj
OUTPUT-
anuj
ashish
deepak
jatin
niteesh
nitin
ravi
shubham
ujjwal
vivek
zafar
ALGORITHM-
-Start from the first name and compare it with all other names
-if it is lexicographically large from others then swap both of them
-Repeat this process for n-1 names
CODE-
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
void merge(char a[][30],long int l,long int m,long int r)
{
long int i,j,k;
long int n1=m-l+1;
long int n2=r-m;
char la[n1][30],ra[n2][30];
for(i=0;i<n1;i++)
strcpy(la[i],a[l+i]);
for(j=0;j<n2;j++)
strcpy(ra[j],a[m+1+j]);
i=0;j=0;k=l;
while(i<n1 && j<n2)
{
if(strcmp(la[i],ra[j])<0)
{
strcpy(a[k],la[i]);
i++;
k++;
}
else
{
strcpy(a[k],ra[j]);
j++;
k++;
}
}
while(i<n1)
{
strcpy(a[k],la[i]);
i++;
k++;
}
while(j<n2)
{
strcpy(a[k],ra[j]);
j++;
k++;
}
}
void mergesort(char a[][30],long int l,long int r)
{
if(l<r)
{
int m=l+(r-l)/2;
mergesort(a,l,m);
mergesort(a,m+1,r);
merge(a,l,m,r);
}
}
int main()
{
int n,i,j;
printf("enter number of inputs:");
scanf("%d",&n);
char a[n][30],temp[n];
for(i=0;i<n;i++)
scanf("%s",a[i]);
mergesort(a,0,n-1);
printf("after sorting:\n");
for(i=0;i<n;i++)
printf("%s\n",a[i]);
return 0;
}
INPUT-
11
niteesh
ravi
ujjwal
vivek
zafar
nitin
jatin
deepak
ashish
shubham
anuj
OUTPUT-
anuj
ashish
deepak
jatin
niteesh
nitin
ravi
shubham
ujjwal
vivek
zafar
Comments :
Post a Comment