Data Structures and Algorithms in Java
Data Structures and Algorithms in Java
6th Edition
ISBN: 9781118771334
Author: Michael T. Goodrich
Publisher: WILEY
bartleby

Concept explainers

Expert Solution & Answer
Book Icon
Chapter 5, Problem 22C

Explanation of Solution

Recursive method to determine the sum of two elements is equal to “n”:

Create the method FindPair() that accepts the input parameter as “a”, “low”, “high”, and “n” to determine the sum of two elements in an array “a” is equal to “n” by calling this method recursively.

Method definition:

//Define the FindPair() method

public static boolean FindPair(int a[], int low, int high, int n)

{

  //Check whether the "low" is equal to "high"

  if(low == high)

/*Return false, if there are no elements in array "a" that sum is equal to "n". */

  return false;

/*Otherwise, check whether the sum of "a[low]" and "a[high]" is less than "n". */

  else if((a[low]+a[high]) < n)

/*Call FindPair() method recursively by passing the parameters as "a", "low+1", "high" and "n" to sum the two elements is equal to "n". */

  return FindPair(a, low+1, high, n);

/*Otherwise, check whether the sum of "a[low]" and "a[high]" is greater than "n". */

  else if((a[low]+a[high]) > n)

/*Call FindPair() method recursively by passing the parameters as "a", "low", "high-1" and "n" to sum the two elements is equal to "n". */

  return FindPair(a, low, high-1, n);

  else

/*Return true, if there are elements in array "a" that sum is equal to "n". */

  return true;

}

Explanation:

In the above code,

  • In the FindPair() method,
    • It accepts the input parameter as “a”, “low”, “high”, and “n”.
    • Check whether the “low” is equal to “high”. If yes,
      • Return false, if there are no elements in array “a” that sum is equal to “n”.
    • Otherwise, check whether the sum of “a[low]” and “a[high]” is less than “n”. If yes,
      • Call FindPair() method recursively by passing the parameters as “a”, “low+1”, “high”,  and “n” to sum the two elements is equal to “n”...

Blurred answer
Students have asked these similar questions
Given an unsorted array, A, of integers and an integer k, write a recursivejava code for rearranging the elements in A so that all elements less than or equal to k come before any elements larger than k. What is the running time of your algorithm on an array of n values.
Write a recursive function using python for the problem: A palindrome is a sequence of characters which is the same when the sequence is reversed. Given an array A indexed from p to q containing characters, determine if the sequence of characters in A[p..q] forms a palindrome. Return True is a palindrome is formed and return False if it does not.
Give a recursive algorithm for computing an, where a is a nonzero real number and n is a nonnegative integer.
Knowledge Booster
Background pattern image
Computer Science
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
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education