Data Structures and Algorithms in Java
Data Structures and Algorithms in Java
6th Edition
ISBN: 9781119278023
Author: Michael T. Goodrich; Roberto Tamassia; Michael H. Goldwasser
Publisher: Wiley Global Education US
bartleby

Concept explainers

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

Explanation of Solution

Recursive method to arrange the elements is less than or equal to “n”:

Create the method arrangingElements() that accepts the input parameter as “a”, “n”, “low”, and “high” to arrange the elements is less than or equal to “n” before any integer greater than “n” by calling this method recursively.

Method definition:

//Define the arrangingElements() method

public static void arrangingElements(int a[], int n, int low, int high)

{

  //Check whether the "low" is greater than "high"

  if(low > high)

  {

/*Check whether the "low" is less than array length and "a[low]" is greater than "a[a.length-1]".*/

  if(low < a.length && a[low] > a[a.length - 1])

  {

/*Assign the "a[low]" value to temporary variable. */

  int temp = a[low];

/*Assign the "a[a.length-1]" value to "a[low]". */

  a[low] = a[a.length - 1];

  //Assign the "temp" value to "a[a.length-1]"

  a[a.length - 1] = temp;

  }

//Return it

  return;

  }

/*Otherwise, call arragingElements() method recursively to arrange the elements is less than or equal to "n" before any integer greater than "n". */

  else

  {

  //Check whether the "a[low]" is less than "n"

  if(a[low] < n)

  //Increment "low" by "1"

  low++;

/*Otherwise, check whether "a[low]" is equal to "n". */

  else if(a[low] == n)

  {

/*Check whether "a[a.length-1]" is not equal to than "n". */

  if(a[a.length - 1] != n)

  {

/*Assign the "a[low]" value to temporary variable. */

  int temp = a[low];

/*Assign the "a[a.length-1]" value to "a[low]". */

  a[low] = a[a.length - 1];

/*Assign the "temp" value to "a[a.length-1]"> */

  a[a.length - 1] = temp;

  }

  //Otherwise, increment "low" by "1"

  else

  low++;

}

//Otherwise, swap the array elements

  else

  {

/*Assign the "a[low]" value to temporary variable. */

  int temp = a[low];

//Assign the "a[high]" value to "a[low]"

  a[low] = a[high];

  //Assign the "temp" value to "a[high]"

  a[high] = temp;

  //Decrement "high" by "1"

  high--;

}

/*Call arrangingElements() method recursively to find the elements are less than or equal to "n". */

  arrangingElements(a, n, low, high);

  }

}

Explanation:

In the above code,

  • In the arrangingElements() method,
    • It accepts the input parameter as “a”, “n”, “low”, and “high”...

Blurred answer
Students have asked these similar questions
How can predictive and prescriptive modeling be used to measure operational performance in real-time? Do you see any potential downsides to this application? Can you provide an example?
Tracing the Recursion. Tracing the Recursion. Observe the recursive solution provided below. 1. Which line(s) of this program define(s) the base case of sumOfDigits() method? 2. Which line(s) of this program include recursive call(s)? 3. Trace the recursion below. You must show the trace step by step; otherwise – little to no credit! 4. Show me the final result! 1 public class SumOfDigitsCalculator { 30 123456 7% 8 public static void main(String[] args) { System.out.println(sumOfDigits(1234)); } public static int sumOfDigits (int number) { if (number == 0) 9 10 11 12 } 13 } else return 0; return number % 10 + sumOfDigits (number / 10);
module : java 731   Question3:                                                                                                                                    (30 MARKS) Passenger Rail Agency for South Africa Train Scheduling System Problem Statement Design and implement a train scheduling system for Prasa railway network. The system should handle the following functionalities: 1. Scheduling trains: Allow the addition of train schedules, ensuring that no two trains use the same platform at the same time at any station. 2. Dynamic updates: Enable adding new train schedules and canceling existing ones. 3. Real-time simulation: Use multithreading to simulate the operation of trains (e.g., arriving, departing). 4. Data management: Use ArrayList to manage train schedules and platform assignments. Requirements 1. Add Train Schedule, Cancel Scheduled Train, View Train Schedules and Platform Management 2. Concurrency Handling with Multithreading i.e Use threads to simulate train operations,…
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
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Text book image
New Perspectives on HTML5, CSS3, and JavaScript
Computer Science
ISBN:9781305503922
Author:Patrick M. Carey
Publisher:Cengage Learning
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
Programming with Microsoft Visual Basic 2017
Computer Science
ISBN:9781337102124
Author:Diane Zak
Publisher:Cengage Learning
Text book image
Systems Architecture
Computer Science
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Cengage Learning