STARTING OUT WITH C++ FROM REVEL >IA<
9th Edition
ISBN: 9780135843024
Author: GADDIS
Publisher: PEARSON
expand_more
expand_more
format_list_bulleted
Textbook Question
Chapter 8, Problem 7PC
Binary String Search
Modify the binarySearch function presented in this chapter so it searches an array of strings instead of an array of ints. Test the function with a driver
Expert Solution & Answer
Want to see the full answer?
Check out a sample textbook solutionStudents have asked these similar questions
C++
Write a ternarySearch function. A ternary search is similar to a binary search, but it divides an array into three sections instead of two - find the two points that divide the array into three (almost) equal sections, and then use these points to decide where to search for the key.
#### Part 1
Write a Python function (`binary_search`) that implements the binary search algorithm.
This function will take a list argument (`values`), a value to search for (`to_find`), a start index (`start_index`), and an end index (`end_index`). The function will return `True` if `to_find` is present in `values`, and `False` otherwise.
Below, you will find some code to test your binary search:
```python
values = [2,4,6,8,10,12,14,16,18,20]
print(binary_search(values, 14, 0, len(values) - 1))
print(binary_search(values, 7, 0, len(values) - 1))
```
The output of the test code is below:
```
True
False
```
#### Part 2
Modify your `binary_search` function to count the number of comparisons (==, <, <=, >, or >=). The function will now return both the number of comparisons made and the `True` or `False` result.
The code below calls your function, and creates a simple ASCII bar chart of the number of comparisons (divided by 10, to account for small differences).
Some…
Language C++(OOP)
Write a function template to perform linear search in an array.
Chapter 8 Solutions
STARTING OUT WITH C++ FROM REVEL >IA<
Ch. 8.2 - Prob. 8.1CPCh. 8.2 - Prob. 8.2CPCh. 8.2 - Prob. 8.3CPCh. 8.2 - Prob. 8.4CPCh. 8 - Prob. 1RQECh. 8 - If a linear search function is searching for a...Ch. 8 - Prob. 3RQECh. 8 - A binary search function is searching for a value...Ch. 8 - What is the maximum number of comparisons that a...Ch. 8 - Prob. 6RQE
Ch. 8 - Why is the selection sort more efficient than the...Ch. 8 - Prob. 8RQECh. 8 - The __________ search algorithm repeatedly divides...Ch. 8 - Prob. 10RQECh. 8 - The ____________ search algorithm requires that...Ch. 8 - If an array is sorted in ______________ order, the...Ch. 8 - If an array is sorted in _____________ order, the...Ch. 8 - Prob. 14RQECh. 8 - Prob. 15RQECh. 8 - Prob. 16RQECh. 8 - T F The maximum number of comparisons performed by...Ch. 8 - Prob. 18RQECh. 8 - Charge Account Validation Write a program that...Ch. 8 - Lottery Winners A lottery ticket buyer purchases...Ch. 8 - Lottery Winners Modification Modify the program...Ch. 8 - Charge Account Validation Modification Modify the...Ch. 8 - Rainfall Statistics Modification Modify the...Ch. 8 - String Selection Sort Modify the selectionSort...Ch. 8 - Binary String Search Modify the binarySearch...Ch. 8 - Search Benchmarks Write a program that has an...Ch. 8 - Sorting Benchmarks Write a program that uses two...Ch. 8 - Sorting Orders Write a program that uses two...Ch. 8 - Using FilesString Selection Sort Modification...
Additional Engineering Textbook Solutions
Find more solutions based on key concepts
Explain why the rapid delivery and deployment of new systems is often more important to businesses than the det...
Software Engineering (10th Edition)
The command from the JDK compiles a Java program.
Java How To Program (Early Objects)
A file that contains a Flash animation uses the __________ file extension. a. .class b. .swf c. .mp3 d. .flash
Web Development and Design Foundations with HTML5 (8th Edition)
How would the following strings be converted by the CDec function? a. 48.5000 b. 34.95 c. 2,300 d. Twelve
Starting Out With Visual Basic (7th Edition)
Which category of C++ reference variables always produces aliases?
Concepts of Programming Languages (11th Edition)
Knowledge Booster
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
- Modify the recursive Fibonacci function to employ the memoization technique discussed in this chapter. The function creates a dictionary and then defines a nested recursive helper function named memoizedFib. You will need to create a dictionary to cache the sum of the fib function. The base case of the fib function is the same as before. However, before making any recursive calls, the helper function looks up the value for the function’s current argument in the dictionary (use the method get, with None as the default value). If the value exists, the function returns it and skips any recursive calls. Otherwise, after the helper function adds the results of its two recursive calls, it saves the sum in the dictionary with the current argument of the function as the key. Note: The program should output in the following format: n fib(n) 2 1 4 3 8 21 16 987 32 2178309 ---------------------------------------------------------------------------------- def…arrow_forwardData Structure Using C++ (Recursion) Need C++ Code ::: DON'T USE STACK PLEASE JUST Recursion This is a one question >>> 6 function in one code ....... don't use cin please Without using stack just Recursion please Write the following recursive functions once for an array and once for simply linked list (as member functions)1. to print all odd elements in backwards order.2. to count number of values that are below 10.3. to find maximum value. Run your functions on the following array 2,7,12,5,0,3,44,1,26and the following list 4,1,10,3,0,5,24,7,40 6 functions 3 for simply linked list and 3 for array like picture need pleasearrow_forwardCode in C. Solve the code below. write a function that receives a vector of integers already sorted in ascending order, an integer n represents the number of elements in this vector, and an integer b. Implement the sequential search algorithm to look for the integer b in the vector. The binary search works as follows: you must look for the element in the position exactly in the half of the vector, if for the searched it returns the number of tests done so far, if not for the searched, calculate the midpoint of the half of the vector after assess whether the searched value is greater or less than the value at the middle position. Not finding the value searched, the function must return 0. The name of the function will be called "busca_bin". int busca_bin (int vetor [ ], int n, int b){ #include <stdio.h> int busca_bin(int vetor[] , int n , int a) { int s1 = 0; int s2 = n-1; int pass = 0; int s3; while(s1<s2) { s3 = (s1+s2)/2; pass++;…arrow_forward
- Code in C. Solve the code below. write a function that receives a vector of integers already sorted in ascending order, an integer n represents the number of elements in this vector, and an integer b. Implement the sequential search algorithm to look for the integer b in the vector. The binary search works as follows: you must look for the element in the position exactly in the half of the vector, if for the searched it returns the number of tests done so far, if not for the searched, calculate the midpoint of the half of the vector after assess whether the searched value is greater or less than the value at the middle position. Not finding the value searched, the function must return 0. The name of the function will be called "busca_bin". int busca_bin (int vetor [ ], int n, int b){// your code} My code #include <stdio.h> int busca_bin(int vetor[] , int n , int a) { int s1 = 0; int s2 = n-1; int pass = 0; int s3; while(s1<s2) {…arrow_forwardAn array with an odd number of elements is said to be balanced if all elements (except the middle one) are strictly greater than the value of the middle element. Note that only arrays with an odd number of elements have a middle element. Write a C++ function that accepts an integer array and returns 1 or “Balanced” if it is a balanced array, otherwise it returns 0 or “Not Balanced”.arrow_forwardC++ (a) Use iteration (b) Use recursion (c) Convert the function that you wrote in part (b) into a template function. The template function should work for arrays of any type.arrow_forward
- 15.14 LAB: Binary search Binary search can be implemented as a recursive algorithm. Each call makes a recursive call on one-half of the list the call received as an argument. Complete the recursive function BinarySearch() with the following specifications: Parameters: a target integer a vector of integers lower and upper bounds within which the recursive call will search Return value: the index within the vector where the target is located -1 if target is not found The template provides the main program and a helper function that reads a vector from input. The algorithm begins by choosing an index midway between the lower and upper bounds. If target == integers.at(index) return index If lower == upper, return -1 to indicate not found Otherwise call the function recursively on half the vector parameter: If integers.at(index) < target, search the vector from index + 1 to upper If integers.at(index) > target, search the vector from lower to index - 1 The vector…arrow_forward15.14 LAB: Binary search Binary search can be implemented as a recursive algorithm. Each call makes a recursive call on one-half of the list the call received as an argument. Complete the recursive function BinarySearch() with the following specifications: Parameters: a target integer a vector of integers lower and upper bounds within which the recursive call will search Return value: the index within the vector where the target is located -1 if target is not found The template provides the main program and a helper function that reads a vector from input. The algorithm begins by choosing an index midway between the lower and upper bounds. If target == integers.at(index) return index If lower == upper, return -1 to indicate not found Otherwise call the function recursively on half the vector parameter: If integers.at(index) < target, search the vector from index + 1 to upper If integers.at(index) > target, search the vector from lower to index - 1 The vector…arrow_forwardData Structure Using C++ (Recursion) Need C++ Code ::: This is a one question >>> 6 function in one code ....... don't use cin please Write the following recursive functions once for an array and once for simply linked list (as member functions)1. to print all odd elements in backwards order.2. to count number of values that are below 10.3. to find maximum value. Run your functions on the following array 2,7,12,5,0,3,44,1,26and the following list 4,1,10,3,0,5,24,7,40 6 functions 3 for simply linked list and 3 for arrayarrow_forward
- Data Structure Using C++ (Recursion) Need C++ Code ::: This is a one question >>> 6 function in one code ....... don't use cin please Write the following recursive functions once for an array and once for simply linked list (as member functions)1. to print all odd elements in backwards order.2. to count number of values that are below 10.3. to find maximum value. Run your functions on the following array 2,7,12,5,0,3,44,1,26and the following list 4,1,10,3,0,5,24,7,40 6 functions 3 for simply linked list and 3 for array like picture need pleasearrow_forwardc++ make a simple prrogram that takes random 2d array entered by user and organizes it use pointers for example if the user enter ((8,4),(3,4),(7,2),(8,6),(3,1)) no limit to number of sets use pointers there should be a function called transformer that will transform them into the right order and a funtion called display that will display what was inputed then it would organize it into ((4,8),(3,4),(2,7),(6,8),(1,3)) IT should only modify it and not make a copy of it.arrow_forwardCode in C. Solve the code below. Write a function that takes a vector of integers, an integer n representing the number of elements in that vector, and an integer b. Implement the sequential search algorithm to look for the integer b in the vector. The sequential search works as follows: you must look at all the elements of the vector until you find the b, from the first to the last. The function must return an integer representing how many elements the function tested until it found b. If it does not find the function, it must return 0. The name of the function must be called "busca_seq". int busca_seq(int vetor[], int n, int b) { //your code } My Code #include<stdio.h> int busca_seq(int vetor[], int n, int b) { int i; for(i = 0; i < n; i++){ if(vetor[i] == b) return (i+1); } { int vet[5],n = 5,b,x; vet[0] = 1; vet[1] = 2; vet[2] = 3; vet[3] = 4; vet[4] = 5; scanf("%d",&b); x = busca_seq(vet,n,b); printf("%d",x); return 0; } }arrow_forward
arrow_back_ios
SEE MORE QUESTIONS
arrow_forward_ios
Recommended textbooks for you
- C++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology Ptr
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
1.1 Arrays in Data Structure | Declaration, Initialization, Memory representation; Author: Jenny's lectures CS/IT NET&JRF;https://www.youtube.com/watch?v=AT14lCXuMKI;License: Standard YouTube License, CC-BY
Definition of Array; Author: Neso Academy;https://www.youtube.com/watch?v=55l-aZ7_F24;License: Standard Youtube License