fork download
  1. #include <stdio.h>
  2.  
  3. int binarySearch(int arr[], int l, int r, int x)
  4. {
  5. printf("binarySearch called with l = %d, r = %d, x = %d\n", l, r, x);
  6. if (r >= 1) {
  7. int mid = l + (r-1)/2;
  8. printf("Calculated mid = %d, arr[mid] = %d\n", mid, arr[mid]);
  9. if (arr[mid] == x) {
  10. printf("Element found at index %d\n", mid);
  11. return mid;
  12. }
  13. if (arr[mid] > x) {
  14. printf("Searching left subarray\n");
  15. return binarySearch(arr, l, mid + 1, x);
  16. }
  17.  
  18. printf("Searching right subarray\n");
  19. return binarySearch(arr, mid + 1, r, x);
  20. }
  21. printf("Element not found\n");
  22. return -1;
  23. }
  24.  
  25. int main() {
  26. int arr[] = {2, 3, 4, 10, 40};
  27. int n = sizeof(arr) / sizeof(arr[0]);
  28. int x = 10;
  29. int result = binarySearch(arr, 0, n - 1, x);
  30. if (result == -1)
  31. printf("Element is not present in array\n");
  32. else
  33. printf("Element is present at index %d\n", result);
  34. return 0;
  35. }
  36.  
Success #stdin #stdout 0.03s 26040KB
stdin
Standard input is empty
stdout
#include <stdio.h>

int binarySearch(int arr[], int l, int r, int x)
{
     printf("binarySearch called with l = %d, r = %d, x = %d\n", l, r, x);
     if (r >= 1) {
       int mid = l + (r-1)/2;
       printf("Calculated mid = %d, arr[mid] = %d\n", mid, arr[mid]);
       if (arr[mid] == x) {
         printf("Element found at index %d\n", mid);
         return mid;
       }
       if (arr[mid] > x) {
         printf("Searching left subarray\n");
         return binarySearch(arr, l, mid + 1, x);
       }

       printf("Searching right subarray\n");
       return binarySearch(arr, mid + 1, r, x);
     }
  printf("Element not found\n");
  return -1;
}

int main() {
    int arr[] = {2, 3, 4, 10, 40};
    int n = sizeof(arr) / sizeof(arr[0]);
    int x = 10;
    int result = binarySearch(arr, 0, n - 1, x);
    if (result == -1)
        printf("Element is not present in array\n");
    else
        printf("Element is present at index %d\n", result);
    return 0;
}