# Answers for "recursive function of binary search"

0

binary search with non recursive function call

``````/* Binary search program in C using both recursive and non recursive functions */

#include <stdio.h>
#define MAX_LEN 10

/* Non-Recursive function*/
void b_search_nonrecursive(int l[],int num,int ele)
{
int l1,i,j, flag = 0;
l1 = 0;
i = num-1;
while(l1 <= i)
{
j = (l1+i)/2;
if( l[j] == ele)
{
printf("\nThe element %d is present at position %d in list\n",ele,j);
flag =1;
break;
}
else
if(l[j] < ele)
l1 = j+1;
else
i = j-1;
}
if( flag == 0)
printf("\nThe element %d is not present in the list\n",ele);
}

/* Recursive function*/
int b_search_recursive(int l[],int arrayStart,int arrayEnd,int a)
{
int m,pos;
if (arrayStart<=arrayEnd)
{
m=(arrayStart+arrayEnd)/2;
if (l[m]==a)
return m;
else if (a<l[m])
return b_search_recursive(l,arrayStart,m-1,a);
else
return b_search_recursive(l,m+1,arrayEnd,a);
}
return -1;
}

{
int i;
printf("\nEnter the elements:\n");
for(i=0;i<n;i++)
scanf("%d",&l[i]);
}

void print_list(int l[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%d\t",l[i]);
}

/*main function*/
main()
{
int l[MAX_LEN], num, ele,f,l1,a;
int ch,pos;

//clrscr();

printf("======================================================");
printf("\n=====================================================");
printf("\n[1] Binary Search using Recursion method");
printf("\n[2] Binary Search using Non-Recursion method");
scanf("%d",&ch);

if(ch<=2 & ch>0)
{
printf("\nEnter the number of elements : ");
scanf("%d",&num);
printf("\nElements present in the list are:\n\n");
print_list(l,num);
printf("\n\nEnter the element you want to search:\n\n");
scanf("%d",&ele);

switch(ch)
{
case 1:printf("\nRecursive method:\n");
pos=b_search_recursive(l,0,num,ele);
if(pos==-1)
{
}
else
{
printf("Element is found at %d position",pos);
}
//getch();
break;

case 2:printf("\nNon-Recursive method:\n");
b_search_nonrecursive(l,num,ele);
//getch();
break;
}
}
//getch();
}``````
Posted by: Guest on January-21-2021
0

recursive binary search

``````import java.util.Scanner;

public class BinarySearching {
public static void main(String[] argh){
System.out.println("Enter the size of the Array: ");
Scanner input = new Scanner(System.in);
int size = input.nextInt();
int [] array = new int[size];

int[] binarySort = enterValues(array,size);

System.out.println("Which number you want to find? ");
int numberTofind = input.nextInt();

int low =0;
int high = binarySort.length-1;

if(findNumber(binarySort,numberTofind,low,high) == -1){
System.out.println("The number you entered dose not exist");
return;
}

System.out.println("the number is at index: "+findNumber(binarySort,numberTofind,low,high));

}
public static int[] enterValues(int [] arr,int size){
System.out.println("Enter Sorted Array: ");
for(int i=0 ; i<size;++i){
arr[i] = i;
}
return arr;
}

public static int findNumber(int [] sortedArray, int findThisNumber,int low , int high ){
int midle = (low+high)/2;
if(sortedArray[midle]==findThisNumber)
{ return midle;
}else if(sortedArray[midle] < findThisNumber)
{
return findNumber(sortedArray,findThisNumber,low=midle+1,high);
}else if(sortedArray[midle] > findThisNumber)
{
return findNumber(sortedArray,findThisNumber,low,high=midle-1);
}
return -1;
}

}``````
Posted by: Guest on July-17-2021