Skip to main content

Binary Search use Recursion in C or C Program for Binary Search using Array Passing UDF

Binary Search using Recursion function in C or C Program for Binary Search using Array Passing User Defined Function :-

Example : How to write C Program for Binary Search using Recursive Function and its solutions given below :-

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

int binarySearch(int lmt[],int arrayStart,int arrayEnd,int a) /* UDF declar with definition */
{
int m,pos;
if (arrayStart<=arrayEnd)
{
m=(arrayStart+arrayEnd)/2;
if (lmt[m]==a)
return m;
else if ( a < lmt[m] )
return binarySearch(lmt,arrayStart,m-1,a); /* function calls itself called Recursive function */
else
return binarySearch(lmt,m+1,arrayEnd,a); /* function calls itself called Recursive function */
}
return -1;
}

void readArray(int lmt[],int n) /* UDF declar with definition */
{
int i;
printf("Enter the array elements :\n");
for( i=0 ; i < n ; i++ )
scanf("%d",&lmt[i]);
}

/* main() function starts here */
void main()
{

int lmt[10], num, searchElement,pos;

clrscr();


printf("Enter the number of array elements to be printed :");
scanf("%d",&num);

readArray(lmt,num);

printf("\nEnter the element you want to search :");
scanf("%d",&searchElement);

pos=binarySearch(lmt,0,num,searchElement);
if(pos==-1)
{
printf("\nElement not found");
}
else
{
printf("\nElement found at %d position",++pos);
}

getch();
}
/*
if we give no of elements is 5 and array elements are 11,22,33,66,45 then element to be searched is 66 then answer will be "Element found at 4 position" otherwise "Element not found"
*/

Popular posts from this blog

Swapping of Two Numbers in C or C Program to Swap Two Numbers

Swapping of Two Numbers in C or C Program to Swap Two Numbers or C program to Swap two numbers without using a third variable #include <stdio.h> #include <conio.h>  void main() {    int x, y, temp;    clrscr();    // to clear screen       printf("Enter the value of x and y\n");    scanf("%d%d", &x, &y);    printf("Before Swapping\nx = %d\ny = %d\n",x,y);    temp = x;    x    = y;    y    = temp;    /*       without using temp variable, this can be used    let x=4 and y=5    x = x + y ;   x=x+y => x=4+5 => x=9     y = x - y ;   y=x-y => y=9-5 => y=4  value changed    x = x - y ;   x=x-y => x=9-4 => x=5  value changed      */       printf("After Swapping\nx ...

C Model Question Papers for BCA 1st year Kannur Bharathiar MG Madras Bangalore University

C Model Question Papers for BCA 1st year Kannur Bharathiar MG Madras Bangalore University : Fist Year BCA Model Question Paper for C Programming Language :- Model Question Paper B.C.A. : I Year: Programming using C: Time: 3 Hrs. Max. Marks: 100 SECTION – A 1) Answer the following Questions : 10 x 2 = 20 M a) Define Algorithm. b) Define Identifier. c) What is the Purpose of sizeof() operator. d) Compare while and do-while loops. Justify your answer. e) Define Recursion. f) How can we initialize an array. g) What is the difference between structure and union ? h) Define Pointer variable. i) Define Macro. j) What is the purpose of rewind() function. Section – B Answer the following questions. 4 x 20 = 80 M 2. a) Explain the structure of C program. b) Explain features of C language. (or) c) Describe in brief the operators in C language. d) Write a C program to evaluate the following expression. (a+(b*c)/d) 3. a) Explain control structures with examples. (or) b) Explain different parameter ...

Find the Greatest Time in C or CPP from two different times.

Find the Greatest Time in C or CPP from two different times. Example Code: #include<iostream.h> #include<conio.h> class time { private: int hh,mm,ss; public: void get() { cout<<"\n enter hh,mm,ss:"; cin>>hh>>mm>>ss; } void show() { cout<<"\n hour:"<<hh<<"\n minute:"<<mm<<"\n second:"<<ss; } time greatest(time x) { if (hh>x.ss) return *this; else if(hh>x.hh) return x; else if(mm>x.mm) return *this; else if(mm<x.mm) return x; else if(ss>x.ss) return *this; else return x; } }; void main() { clrscr(); time t1,t2,t3; cout<<"\n enter time1:"; t1.get(); cout<<"\n enter time2:"; t2.get(); t3=t1.greatest(t2); cout<<"\n greatest time:"; t3.show(); getch(); }