Trace and comment each and every line of the C++ program below ; #include using namespace std; int binarySearch(int arr[], int left, int right, int num) { if (right >= left) { int mid = left + (right - left) / 2; if (arr[mid] == num) return mid; if (arr[mid] > num) return binarySearch(arr, left, mid - 1, num); return binarySearch(arr, mid + 1, right, num); } return -1; } int main(void) { int arr[] = { 2, 3, 4, 8, 10, 40 }; int check = 40; int n = sizeof(arr) / sizeof(arr[0]); int result = binarySearch(arr, 0, n - 1, check); (result == -1) ? cout << "Element is not present in array" : cout << "Element is present at index " << result; return 0; }
Question:
Trace and comment each and every line of the C++ program below ;
#include <iostream>
using namespace std;
int binarySearch(int arr[], int left, int right, int num)
{
if (right >= left) {
int mid = left + (right - left) / 2;
if (arr[mid] == num)
return mid;
if (arr[mid] > num)
return binarySearch(arr, left, mid - 1, num);
return binarySearch(arr, mid + 1, right, num);
}
return -1;
}
int main(void)
{
int arr[] = { 2, 3, 4, 8, 10, 40 };
int check = 40;
int n = sizeof(arr) / sizeof(arr[0]);
int result = binarySearch(arr, 0, n - 1, check);
(result == -1)
? cout << "Element is not present in array"
: cout << "Element is present at index " << result;
return 0;
}
#include <iostream> // To include the IO library header
using namespace std;
int binarySearch(int arr[], int left, int right, int num)
{
if (right >= left) // Check if num is present at right or left
{
int mid = left + (right - left) / 2; // If num greater, ignore left half
if (arr[mid] == num)
// If the element is present at the middle
// itself
return mid;
if (arr[mid] > num) // If num is smaller than mid, then
// it can only be present in left subarray
return binarySearch(arr, left, mid - 1, num);
return binarySearch(arr, mid + 1, right, num);
}
return -1; // We reach here when element is not
// present in array
}
Step by step
Solved in 2 steps