LAB 8.2 Working with the Binary Search Bring in program binary_search.cpp from the Lab 8 folder. This is Sample Program 8.2 from the Pre-lab Reading Assignment. The code is the following: // This program demonstrates a Binary Search // PLACE YOUR NAME HERE #include using namespace std; int binarySearch (int [], int, int); // function prototype const int SIZE = 16; int main() 7 int found, value; int array[](34,19,19, 18, 17, 13, 12, 12, 12, 11, 9, 5, 3,2,2,0); // array to be searched cout << "Enter an integer to search for:" << endl; cin >> value; found= binarySearch (array, SIZE, value); if (found = -1) else // function call to perform the binary search // on array looking for an occurrence of value cout << "The value << value << is not in the list" << endl; cout << "The value << value << is in position number" << found + 1 <

Introductory Circuit Analysis (13th Edition)
13th Edition
ISBN:9780133923605
Author:Robert L. Boylestad
Publisher:Robert L. Boylestad
Chapter1: Introduction
Section: Chapter Questions
Problem 1P: Visit your local library (at school or home) and describe the extent to which it provides literature...
icon
Related questions
Question

solve this

LAB 8.2 Working with the Binary Search
Bring in program binary_search.cpp from the Lab 8 folder. This is Sample
Program 8.2 from the Pre-lab Reading Assignment. The code is the following:
// This program demonstrates a Binary Search
// PLACE YOUR NAME HERE
#include <iostream>
using namespace std;
int binarySearch (int [], int, int); // function prototype
const int SIZE = 16;
int main()
7
int found, value;
int array[](34,19,19, 18, 17, 13, 12, 12, 12, 11, 9, 5, 3,2,2,0);
// array to be searched
cout << "Enter an integer to search for:" << endl;
cin >> value;
found= binarySearch (array, SIZE, value);
if (found = -1)
else
// function call to perform the binary search
// on array looking for an occurrence of value
cout << "The value << value << is not in the list" << endl;
cout << "The value << value << is in position number"
<< found + 1 <<of the list" << endl;
return 0;
binarySearch
Transcribed Image Text:LAB 8.2 Working with the Binary Search Bring in program binary_search.cpp from the Lab 8 folder. This is Sample Program 8.2 from the Pre-lab Reading Assignment. The code is the following: // This program demonstrates a Binary Search // PLACE YOUR NAME HERE #include <iostream> using namespace std; int binarySearch (int [], int, int); // function prototype const int SIZE = 16; int main() 7 int found, value; int array[](34,19,19, 18, 17, 13, 12, 12, 12, 11, 9, 5, 3,2,2,0); // array to be searched cout << "Enter an integer to search for:" << endl; cin >> value; found= binarySearch (array, SIZE, value); if (found = -1) else // function call to perform the binary search // on array looking for an occurrence of value cout << "The value << value << is not in the list" << endl; cout << "The value << value << is in position number" << found + 1 <<of the list" << endl; return 0; binarySearch
// data ini
11
List of values in an orderd array, the number of
elements in the array, and the value searched for
in the array
// data returned: Position in the array of the value or -1 if value
11
not found
int binarySearch (int array[], int numElems, int value) //function heading
int first 0;
int last numElems -1;
int middle;
// First element of list
1/ last element of the list
// variable containing the current
// middle value of the list
while (first < last)
middle first (last first) / 2;
if (array[middle] value)
return middle;
else if (array(middle)] < value)
last middle - 1;
else
first middle + 1;
4
// it value is in the middle, we are done
// toss out the second remaining half of
// the array and search the first
// toss out the first remaining half of
// the array and search the second.
}
return -1;
// indicates that value is not in the array
Exercise 1: The variable middle is defined as an integer. The program contains
the assignment statement middle-first+ (last-first) /2. Is the right side
of this statement necessarily an integer in computer memory? Explain how
the middle value is determined by the computer. How does this line of
code affect the logic of the program? Remember that first, last, and
middle refer to the array positions, not the values, stored in those array
positions.
Exercise 2: Search the array in the program above for 19 and then 12. Record
what the output is in each case.
Note that both 19 and 12 are repeated in the array. Which occurrence of
19 did the search find?
Which occurrence of 12 did the search find?
Explain the difference.
Exercise 3: Modify the program to search an array that is in ascending order.
Make sure to alter the array initialization.
Transcribed Image Text:// data ini 11 List of values in an orderd array, the number of elements in the array, and the value searched for in the array // data returned: Position in the array of the value or -1 if value 11 not found int binarySearch (int array[], int numElems, int value) //function heading int first 0; int last numElems -1; int middle; // First element of list 1/ last element of the list // variable containing the current // middle value of the list while (first < last) middle first (last first) / 2; if (array[middle] value) return middle; else if (array(middle)] < value) last middle - 1; else first middle + 1; 4 // it value is in the middle, we are done // toss out the second remaining half of // the array and search the first // toss out the first remaining half of // the array and search the second. } return -1; // indicates that value is not in the array Exercise 1: The variable middle is defined as an integer. The program contains the assignment statement middle-first+ (last-first) /2. Is the right side of this statement necessarily an integer in computer memory? Explain how the middle value is determined by the computer. How does this line of code affect the logic of the program? Remember that first, last, and middle refer to the array positions, not the values, stored in those array positions. Exercise 2: Search the array in the program above for 19 and then 12. Record what the output is in each case. Note that both 19 and 12 are repeated in the array. Which occurrence of 19 did the search find? Which occurrence of 12 did the search find? Explain the difference. Exercise 3: Modify the program to search an array that is in ascending order. Make sure to alter the array initialization.
Expert Solution
steps

Step by step

Solved in 1 steps

Blurred answer
Recommended textbooks for you
Introductory Circuit Analysis (13th Edition)
Introductory Circuit Analysis (13th Edition)
Electrical Engineering
ISBN:
9780133923605
Author:
Robert L. Boylestad
Publisher:
PEARSON
Delmar's Standard Textbook Of Electricity
Delmar's Standard Textbook Of Electricity
Electrical Engineering
ISBN:
9781337900348
Author:
Stephen L. Herman
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Electrical Engineering
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education
Fundamentals of Electric Circuits
Fundamentals of Electric Circuits
Electrical Engineering
ISBN:
9780078028229
Author:
Charles K Alexander, Matthew Sadiku
Publisher:
McGraw-Hill Education
Electric Circuits. (11th Edition)
Electric Circuits. (11th Edition)
Electrical Engineering
ISBN:
9780134746968
Author:
James W. Nilsson, Susan Riedel
Publisher:
PEARSON
Engineering Electromagnetics
Engineering Electromagnetics
Electrical Engineering
ISBN:
9780078028151
Author:
Hayt, William H. (william Hart), Jr, BUCK, John A.
Publisher:
Mcgraw-hill Education,