Binary Search iter vs recursive
Binary Search iter vs recursive
#include <stdio.h>
int recursiveBinarySearch(int array[], int start_index, int end_index, int element)
{
if (end_index >= start_index){
int middle = start_index + (end_index - start_index )/2;
if (array[middle] == element)
return middle;
if (array[middle] > element)
return recursiveBinarySearch(array, start_index, middle-1, element);
return recursiveBinarySearch(array, middle+1, end_index, element);
}
return -1;
}
int main(void){
int array[] = {1, 4, 7, 9, 16, 56, 70};
int n = 7;
int element = 9;
int found_index = recursiveBinarySearch(array, 0, n-1, element);
if(found_index == -1 ) {
printf("Element not found in the array ");
}
else {
printf("Element found at index : %d",found_index);
}
return 0;
}
Binary Search
Iterative Recursion
#include <stdio.h> #include <stdio.h>
int iterativeBinarySearch(int array[], int recursiveBinarySearch(int array[], int
int start_index, int end_index, int start_index, int end_index, int element)
element) {
{ if (end_index >= start_index){
while (start_index <= end_index){ int middle = start_index + (end_index
int middle = start_index + - start_index )/2;
(end_index- start_index )/2; if (array[middle] == element)
if (array[middle] == element) return middle;
return middle; if (array[middle] > element)
if (array[middle] < element) return
start_index = middle + 1; recursiveBinarySearch(array,
else start_index, middle-1, element);
end_index = middle - 1; return
} recursiveBinarySearch(array,
return -1; middle+1, end_index, element);
} }
int main(void){ return -1;
int array[] = {1, 4, 7, 9, 16, 56, 70}; }
int n = 7; int main(void){
int element = 16; int array[] = {1, 4, 7, 9, 16, 56, 70};
int found_index = int n = 7;
iterativeBinarySearch(array, 0, n-1, int element = 9;
element); int found_index =
if(found_index == -1 ) { recursiveBinarySearch(array, 0, n-1,
printf("Element not found in the element);
array "); if(found_index == -1 ) {
} printf("Element not found in the array
else { ");
printf("Element found at index : }
%d",found_index); else {
} printf("Element found at index :
return 0; %d",found_index);
} }
return 0;
}