This Post Contains A Mini Project :~ Searching Techniques Using Functions. With Correct Source Code, Algorithm & Output. This Program Is Written, Compiled & Executed At TurboC/C++3.0 Compiler & Will Help You To Understand The Concept Of 'Searching Techniques' From C Language. It Is A Well-Structured Program With Proper Comments Which Provides Step-By-Step Description Of Various Features Of The Language In A Simple & Easy-To-Understand Way.
# Note : You Can Simply Copy-Paste The Following Program Or Code Into Compiler For Direct Result.
/* Program To Perform Different Types Of Searching Techniques Using Functions */
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int No2 = 0;
int Scan(int a[100]);
void Lsearch(int a[100],int);
void Bsearch(int a[100],int);
void Fsearch();
int FibSearch(int a[100],int ,int ,int ,int );
int fib(int );
void main()
{
int No1 = 0;
int a[100];
clrscr();
printf("\n\t\t :: Welcome To 'Searching & Sorting' Program ::");
do
{
printf("\n\nPlease Select One Of The Following Options ::");
printf("\n1. Linear Searching");
printf("\n2. Binary Searching");
printf("\n3. Fibbonanci Searching");
printf("\n4. Exit From Menu");
printf("\nPlease Enter Your Choice Here ::\t");
scanf("%d",&No1);
switch(No1)
{
case 1: No2 = (Scan(a));
Lsearch(a , No2);
break;
case 2: No2 = (Scan(a));
Bsearch(a , No2);
break;
case 3: Fsearch();
break;
case 4: exit (0);
break;
default:printf("\nSorry!!! Invalid Choice");
}
}
while(No1 <= 4);
getch();
}
int Scan(int a[100])
{
int i;
printf("\nPlease Enter The Limit Of Array A ::\t");
scanf("%d",&No2);
printf("\nPlease Enter The Elements For Array A ::\n");
for(i=0;i<No2;i++)
{
scanf("%d",&a[i]);
}
return (No2);
}
void Lsearch(int a[100],int No2)
{
int i , No3 = 0;
int flag = 0;
printf("\nPlease Enter The Element Which You Want Search Into The Array A ::\t");
scanf("%d",&No3);
for(i=0;i<No2;i++)
{
if(No3 == a[i])
{
flag = 1;
break;
}
else
{
flag = 0;
}
}
if(flag == 1)
{
printf("\nThe Entered Element (%d) Is Found Into Array A At (%d) Location With Memory Location :- (%u)",a[i],(i+1),&a[i]);
}
else
{
printf("\nSorry!!! The Entered Element Was Not Found Into Array A. Please Try Again!");
}
}
void Bsearch(int a[100],int No2)
{
int i , Ptr , Temp = 0 , No4 = 0;
int Lb = 0 , Mid = 0 , Ub = No2;
int flag = 0;
for(i=1;i<No2;i++)
{
Ptr = 0;
while(Ptr <= (No2 - i))
{
if(a[Ptr] > a[Ptr+1])
{
Temp = a[Ptr];
a[Ptr] = a[Ptr+1];
a[Ptr+1] = Temp;
}
Ptr++;
}
}
printf("\nYour Entered Elements Have Been Sorted Into The Array A ::\n");
for(i=0;i<No2;i++)
{
printf("%d \n",a[i]);
}
Mid = ((Lb + Ub) / 2);
printf("\nPlease Enter The Element Which You Want Search Into The Array A ::\t");
scanf("%d",&No4);
if(No4 == a[Mid])
{
flag = 1;
}
else
{
if(No4 < a[Mid])
{
for(i=Lb;i<Mid;i++)
{
if(No4 == a[i])
{
flag = 1;
break;
}
}
}
else
{
for(i=(Mid+1);i<Ub;i++)
{
if(No4 == a[i])
{
flag = 1;
break;
}
}
}
}
if(flag == 1)
{
printf("\nThe Entered Element (%d) Is Found Into Array A At (%d) Location With Memory Location :- (%u)",a[i],(i+1),&a[i]);
}
else
{
printf("\nSorry!!! The Entered Element Was Not Found Into Array A. Please Try Again!");
}
}
void Fsearch()
{
int No2 = 0 , a[100] , i , k , Ptr , Temp = 0 , key = 0 , p , q , Mid = 0 , Result = 0;
printf("\nPlease Enter The Limit Of Array A ::\t");
scanf("%d",&No2);
printf("\nPlease Enter The Elements For Array A ::\n");
for(i=0;i<No2;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<No2;i++)
{
Ptr = 0;
while(Ptr < (No2 - i))
{
if(a[Ptr] > a[Ptr+1])
{
Temp = a[Ptr];
a[Ptr] = a[Ptr+1];
a[Ptr+1] = Temp;
}
Ptr++;
}
}
printf("\nYour Entered Elements Have Been Sorted Into The Array A ::\n");
for(i=0;i<No2;i++)
{
printf("%d \n",a[i]);
}
printf("\nEnter The Element To Be Searched ::\t ");
scanf("%d",&key);
for(k=1 ; fib(k) <= No2 ; k++);
p = fib(k-2);
q = fib(k-3);
Mid = No2-p+1;
Result = FibSearch(a,key,Mid,p,q);
if(Result == -1)
printf("\nSorry!!! The Entered Element Was Not Found Into Array A. Please Try Again!");
else
printf("\nThe Entered Element (%d) Is Found Into Array A At (%d) Location",key,Result);
}
int FibSearch(int a[],int key,int Mid ,int p ,int q)
{
int Temp;
if(key==a[Mid])
return(Mid);
if(key> a[Mid])
{
if(p == 1)
return(-1);
Mid = (Mid + q); // new mid
p = (p - q); //p=fib(k-4)
q = (q - p); //q=fib(k-5)
return(FibSearch(a,key,Mid,p,q));
}
else //key < a[mid]
{
if(q==0)
return(-1);
Mid = (Mid - q); // new mid
Temp = (p - q);
p = q; //p=fib(k-3)
q = Temp; //q=fib(k-4)
return(FibSearch(a,key,Mid,p,q));
}
}
int fib(int n)
{
if(n==0)
{
return(0);
}
if(n==1)
{
return(1);
}
return(fib(n-1)+fib(n-2));
}
Output :~
Please Select One Of The Following Options ::
1. Linear Searching
2. Binary Searching
3. Fibbonanci Searching
4. Exit From Menu
Please Enter Your Choice Here :: 1
Please Enter The Limit Of Array A :: 5
Please Enter The Elements For Array A ::
5
1
3
2
4
Please Enter The Element Which You Want To Search Into Array A :: 3
The Entered Element (3) Is Found Into Array A At (3) Location With Memory Location :- 62230
Please Select One Of The Following Options ::
1. Linear Searching
2. Binary Searching
3. Fibbonanci Searching
4. Exit From Menu
Please Enter Your Choice Here :: 2
Please Enter The Limit Of Array A :: 5
Please Enter The Elements For Array A ::
5
1
3
2
4
Your Entered Elements Have Been Sorted Into The Array A ::
1
2
3
4
5
Please Enter The Element Which You Want To Search Into Array A :: 5
The Entered Element (5) Is Found Into Array A At (5) Location With Memory Location :- 62234
Please Select One Of The Following Options ::
1. Linear Searching
2. Binary Searching
3. Fibbonanci Searching
4. Exit From Menu
Please Enter Your Choice Here :: 3
Please Enter The Limit Of Array A :: 5
Please Enter The Elements For Array A ::
5
1
3
2
4
Your Entered Elements Have Been Sorted Into The Array A ::
1
2
3
4
5
Please Enter The Element Which You Want To Search Into Array A :: 3
The Entered Element (3) Is Found Into Array A At (2) Location
Please Select One Of The Following Options ::
1. Linear Searching
2. Binary Searching
3. Fibbonanci Searching
4. Exit From Menu
Please Enter Your Choice Here :: 4
# Note : You Can Simply Copy-Paste The Following Program Or Code Into Compiler For Direct Result.
/* Program To Perform Different Types Of Searching Techniques Using Functions */
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int No2 = 0;
int Scan(int a[100]);
void Lsearch(int a[100],int);
void Bsearch(int a[100],int);
void Fsearch();
int FibSearch(int a[100],int ,int ,int ,int );
int fib(int );
void main()
{
int No1 = 0;
int a[100];
clrscr();
printf("\n\t\t :: Welcome To 'Searching & Sorting' Program ::");
do
{
printf("\n\nPlease Select One Of The Following Options ::");
printf("\n1. Linear Searching");
printf("\n2. Binary Searching");
printf("\n3. Fibbonanci Searching");
printf("\n4. Exit From Menu");
printf("\nPlease Enter Your Choice Here ::\t");
scanf("%d",&No1);
switch(No1)
{
case 1: No2 = (Scan(a));
Lsearch(a , No2);
break;
case 2: No2 = (Scan(a));
Bsearch(a , No2);
break;
case 3: Fsearch();
break;
case 4: exit (0);
break;
default:printf("\nSorry!!! Invalid Choice");
}
}
while(No1 <= 4);
getch();
}
int Scan(int a[100])
{
int i;
printf("\nPlease Enter The Limit Of Array A ::\t");
scanf("%d",&No2);
printf("\nPlease Enter The Elements For Array A ::\n");
for(i=0;i<No2;i++)
{
scanf("%d",&a[i]);
}
return (No2);
}
void Lsearch(int a[100],int No2)
{
int i , No3 = 0;
int flag = 0;
printf("\nPlease Enter The Element Which You Want Search Into The Array A ::\t");
scanf("%d",&No3);
for(i=0;i<No2;i++)
{
if(No3 == a[i])
{
flag = 1;
break;
}
else
{
flag = 0;
}
}
if(flag == 1)
{
printf("\nThe Entered Element (%d) Is Found Into Array A At (%d) Location With Memory Location :- (%u)",a[i],(i+1),&a[i]);
}
else
{
printf("\nSorry!!! The Entered Element Was Not Found Into Array A. Please Try Again!");
}
}
void Bsearch(int a[100],int No2)
{
int i , Ptr , Temp = 0 , No4 = 0;
int Lb = 0 , Mid = 0 , Ub = No2;
int flag = 0;
for(i=1;i<No2;i++)
{
Ptr = 0;
while(Ptr <= (No2 - i))
{
if(a[Ptr] > a[Ptr+1])
{
Temp = a[Ptr];
a[Ptr] = a[Ptr+1];
a[Ptr+1] = Temp;
}
Ptr++;
}
}
printf("\nYour Entered Elements Have Been Sorted Into The Array A ::\n");
for(i=0;i<No2;i++)
{
printf("%d \n",a[i]);
}
Mid = ((Lb + Ub) / 2);
printf("\nPlease Enter The Element Which You Want Search Into The Array A ::\t");
scanf("%d",&No4);
if(No4 == a[Mid])
{
flag = 1;
}
else
{
if(No4 < a[Mid])
{
for(i=Lb;i<Mid;i++)
{
if(No4 == a[i])
{
flag = 1;
break;
}
}
}
else
{
for(i=(Mid+1);i<Ub;i++)
{
if(No4 == a[i])
{
flag = 1;
break;
}
}
}
}
if(flag == 1)
{
printf("\nThe Entered Element (%d) Is Found Into Array A At (%d) Location With Memory Location :- (%u)",a[i],(i+1),&a[i]);
}
else
{
printf("\nSorry!!! The Entered Element Was Not Found Into Array A. Please Try Again!");
}
}
void Fsearch()
{
int No2 = 0 , a[100] , i , k , Ptr , Temp = 0 , key = 0 , p , q , Mid = 0 , Result = 0;
printf("\nPlease Enter The Limit Of Array A ::\t");
scanf("%d",&No2);
printf("\nPlease Enter The Elements For Array A ::\n");
for(i=0;i<No2;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<No2;i++)
{
Ptr = 0;
while(Ptr < (No2 - i))
{
if(a[Ptr] > a[Ptr+1])
{
Temp = a[Ptr];
a[Ptr] = a[Ptr+1];
a[Ptr+1] = Temp;
}
Ptr++;
}
}
printf("\nYour Entered Elements Have Been Sorted Into The Array A ::\n");
for(i=0;i<No2;i++)
{
printf("%d \n",a[i]);
}
printf("\nEnter The Element To Be Searched ::\t ");
scanf("%d",&key);
for(k=1 ; fib(k) <= No2 ; k++);
p = fib(k-2);
q = fib(k-3);
Mid = No2-p+1;
Result = FibSearch(a,key,Mid,p,q);
if(Result == -1)
printf("\nSorry!!! The Entered Element Was Not Found Into Array A. Please Try Again!");
else
printf("\nThe Entered Element (%d) Is Found Into Array A At (%d) Location",key,Result);
}
int FibSearch(int a[],int key,int Mid ,int p ,int q)
{
int Temp;
if(key==a[Mid])
return(Mid);
if(key> a[Mid])
{
if(p == 1)
return(-1);
Mid = (Mid + q); // new mid
p = (p - q); //p=fib(k-4)
q = (q - p); //q=fib(k-5)
return(FibSearch(a,key,Mid,p,q));
}
else //key < a[mid]
{
if(q==0)
return(-1);
Mid = (Mid - q); // new mid
Temp = (p - q);
p = q; //p=fib(k-3)
q = Temp; //q=fib(k-4)
return(FibSearch(a,key,Mid,p,q));
}
}
int fib(int n)
{
if(n==0)
{
return(0);
}
if(n==1)
{
return(1);
}
return(fib(n-1)+fib(n-2));
}
Output :~
Please Select One Of The Following Options ::
1. Linear Searching
2. Binary Searching
3. Fibbonanci Searching
4. Exit From Menu
Please Enter Your Choice Here :: 1
Please Enter The Limit Of Array A :: 5
Please Enter The Elements For Array A ::
5
1
3
2
4
Please Enter The Element Which You Want To Search Into Array A :: 3
The Entered Element (3) Is Found Into Array A At (3) Location With Memory Location :- 62230
Please Select One Of The Following Options ::
1. Linear Searching
2. Binary Searching
3. Fibbonanci Searching
4. Exit From Menu
Please Enter Your Choice Here :: 2
Please Enter The Limit Of Array A :: 5
Please Enter The Elements For Array A ::
5
1
3
2
4
Your Entered Elements Have Been Sorted Into The Array A ::
1
2
3
4
5
Please Enter The Element Which You Want To Search Into Array A :: 5
The Entered Element (5) Is Found Into Array A At (5) Location With Memory Location :- 62234
Please Select One Of The Following Options ::
1. Linear Searching
2. Binary Searching
3. Fibbonanci Searching
4. Exit From Menu
Please Enter Your Choice Here :: 3
Please Enter The Limit Of Array A :: 5
Please Enter The Elements For Array A ::
5
1
3
2
4
Your Entered Elements Have Been Sorted Into The Array A ::
1
2
3
4
5
Please Enter The Element Which You Want To Search Into Array A :: 3
The Entered Element (3) Is Found Into Array A At (2) Location
Please Select One Of The Following Options ::
1. Linear Searching
2. Binary Searching
3. Fibbonanci Searching
4. Exit From Menu
Please Enter Your Choice Here :: 4
No comments:
Post a Comment