#include<stdio.h>
#include<conio.h>
#include<string.h>
void
main()
{
int i,j,k,n,x=1;
char p[20],s[25],z[20][20],a[20][20];
int sequen(char x[][20],char
t[],int n);
int bisear(char x[][20],char
y[],int n);
clrscr();
printf("\n\t\t\tLinear
& Binary search");
printf("\n\t\t\t~~~~~~
~ ~~~~~~ ~~~~~~");
printf("\nHow many
No of values you insert:");
scanf("%d",&n);
printf("\nEnter
your values:\n");
for(k=1;k<=n;k++)
{
printf("\nEnter
the value %d:",k);
scanf("%s",a[k]);
strcpy(z[k],a[k]);
}
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
if(strcmp(a[i],a[j])>0)
{
strcpy(p,a[i]);
strcpy(a[i],a[j]);
strcpy(a[i],p);
}
while(x!=3)
{
printf("\n\nSelect
the search method:");
printf("\n1. Linear
search.\n2. Binary search\n3. Exit.");
printf("\n\nEnter
the choice:");
scanf("%d",&x);
if(x==1||x==2)
{
for(i=1;i<=n;i++)
printf("\t%s",z[i]);
printf("\n\tEnter
the Value to be search: ");
scanf("%s",s);
}
switch(x)
{
case
1:
k=sequen(a,s,n);
if(k)
printf("\n\n\tSearch by Linear:Found
at posistion=>%d",k);
else
printf("\n\nSearch by Linear: Not
Found");
break;
case
2:
k=bisear(a,s,n);
if(k)
printf("\n\nsearch by binary:found
at posistion %d ",k);
else
printf("\n\nSearch by Binary: Not
Found");
break;
case
3:
exit(0);
break;
default:
printf("\nInvalid Input");
break;
}
}
getch();
}
int
sequen(char x[][20],char
t[],int n)
{
int i,flag=0;
for(i=1;i<=n;i++)
if(strcmp(x[i],t)==0)
{
flag=i;
break;
}
return flag;
}
int
bisear(char x[][20],char
y[],int n)
{
int m,l=1,u=n;
while(n-l)
{
m=(l+u)/2;
if(strcmp(y,x[m])>0)
l=m+1;
if(strcmp(y,x[m])<0)
u=m-1;
if(strcmp(y,x[m])==0)
return m;
}
return
0;
}
No comments:
Post a Comment