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; }

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter14: Exception Handling
Section: Chapter Questions
Problem 14SA
icon
Related questions
Question

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;

}

Expert Solution
Step 1

#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

}

 

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Functions
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning