Thursday, August 27, 2009

Linear & Binary search



#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