How to implement binary search in C

1 Answer

0 votes
#include <stdio.h> 
   
int binary_search(int arr[], int right, int to_find) {
	int left = 0;
	while (left <= right) { 
        int mid = left + (right - left) / 2; 
   
        if (arr[mid] == to_find) 
            return mid; 
   
        if (arr[mid] < to_find) 
            left = mid + 1; 
        else
            right = mid - 1; 
    } 
   
    return -1; 
} 
   
int main(void) 
{ 
    int arr[] = { 2, 3, 6, 7, 12, 15, 17, 19 }; 
    int len = sizeof(arr) / sizeof(arr[0]); 
    int to_find = 7; 
     
    int i = binary_search(arr, len - 1, to_find); 
     
    (i == -1) ? printf("not found\n") : printf("Found at index: %d\n", i); 
     
    return 0; 
} 
  
  
  
/*
run:
  
Found at index: 3
 
*/

 



answered Aug 5, 2019 by avibootz
edited Aug 5, 2019 by avibootz

Related questions

2 answers 201 views
1 answer 178 views
1 answer 136 views
136 views asked Aug 5, 2019 by avibootz
2 answers 228 views
...