
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
expand_more
expand_more
format_list_bulleted
Question
3. Design a dynamic
described below:
Input: A sequence of n integers
Output: The longest subsequence where the numbers alternate between being larger and smaller than
their predecessor
The algorithm must take O(n) time. You must also write and explain the recurrence.
Example 1:
Input: [3, 5, 4, 1, 3, 6, 5, 7, 3, 4]
Output: [3, 5, 4, 6, 5, 7, 3, 4]
Example 2:
Input: [4, 7, 2, 5, 8, 3, 8, 0, 4, 7, 8]
Output: [4, 7, 2, 5, 3, 8, 0, 4]
Write in Pseudocode, please
![3. Design a dynamic programming algorithm for the Longest Alternating Subsequence problem
described below:
Input: A sequence of n integers
Output: The longest subsequence where the numbers alternate between being larger and smaller than
their predecessor
The algorithm must take O(n) time. You must also write and explain the recurrence.
Example 1:
Input: [3, 5, 4, 1, 3, 6, 5, 7, 3, 4]
Output: [3,5, 4, 6, 5, 7, 3, 4]
Example 2:
Input: [4, 7, 2,5,8, 3, 8, 0, 4, 7, 8]
Output: [4,7, 2, 5, 3, 8,0, 4]](https://content.bartleby.com/qna-images/question/29176fe6-6fa3-4a86-8603-51952a73a9ea/b2c92e26-894f-4e87-a32f-2e9630b8d4f5/qvdisp_thumbnail.png)
Transcribed Image Text:3. Design a dynamic programming algorithm for the Longest Alternating Subsequence problem
described below:
Input: A sequence of n integers
Output: The longest subsequence where the numbers alternate between being larger and smaller than
their predecessor
The algorithm must take O(n) time. You must also write and explain the recurrence.
Example 1:
Input: [3, 5, 4, 1, 3, 6, 5, 7, 3, 4]
Output: [3,5, 4, 6, 5, 7, 3, 4]
Example 2:
Input: [4, 7, 2,5,8, 3, 8, 0, 4, 7, 8]
Output: [4,7, 2, 5, 3, 8,0, 4]
Expert Solution

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution
Trending nowThis is a popular solution!
Step by stepSolved in 3 steps

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
- A. Construct a RECURSIVE solution for following iterative solution to find a value in a circular-linked list B. Analyze the runtime complexity (correctly explain the scenario, show how much work would be done, and represent the work using asymptotic notations, i.e. big O), of the given iterative solution and your recursive solution for the best case scenario and the worse case scenario. C. prove the correctness of your recursive solution by induction /**@param value - a value to search for@return true if the value is in the list and set the current reference to itotherwise return false and not updating the current reference*/public boolean find(T value){ if(this.cur == null) return false; //get out, nothing is in here Node<T> tmp = this.cur; //start at the current position if(tmp.data == value) return true; // found it at the starting location tmp = tmp.next; //adv. to next node, if there is one while(tmp != cur) { if(tmp.data == value){ this.cur = tmp;…arrow_forwardA problem called S reduces to a problem called T if a T solver can be used as a subroutine to solve S. In pseudocode: Solves(...): ... SolveT(...) ... Assuming that this reduction is correct, answer the following questions regarding what the reduction tells us. If we know that an algorithm exists for solving Problem S, what does that tell us about Problem T? [ Select] If we know that an algorithm cannot exist for solving Problem S, what does that tell us about Problem T? [ Select] If we know that an algorithm exists for solving Problem T, what does that tell us about Problem S? [ Select ] [ Select ] An algorithm cannot exist for solving Problem S,r solving Problem T, what does that tell us about Nothing An algorithm exists for solving Problem Sarrow_forwardAnother recursive algorithm is applied to some data A = (a₁, ..., am) where m = 2* (i.e. 2, 4, 8,16 ...) where x is an integer ≥ 1. The running time T is characterised using the following recurrence equations: T(1) = c when the size of A is 1 T(m) = 2T (2) + c otherwise Determine the running time complexity of this algorithm.arrow_forward
- * Axiomatic Proof Prove the following program for integer division (x/y): { x>= 0 ^ y>0 } q := 0; r := x; while y <= r do begin r := r - y; q := q + 1; end { y > r ^ x = r + y * q }arrow_forwardConsider the following recursive algorithm Algorithm Q(n)// Input: a positive integer nif n == 1 return 1else return Q(n-1)+2*n-1 1) Set up a recurrence relation for this function’s value and solve it to determine what this algorithm computes. 2) Setup a recurrence relation for the number of multiplication made by this algorithm and solve it to find the total number of multiplications that are executed.arrow_forwardThe n-th harmonic is the sum of the reciprocals of the first n natural numbers given by: 17 1.1 1 1 H₁ =Σ =1+=+=+ - 2 3 4 k=1 k +. + n (i) Write a recursive algorithm of this function returning, H, with nε N. (ii) Give a recurrence relation for the number of divisions the recursive algorithm calculates for an input n & N. iii) Solve the recurrence relation and give the O(n) of the algorithm.arrow_forward
- Given three sequences of length m, n, and p each, you are to design and analyze an algorithm to find the longest common subsequence (LCSS) for the three sequence. Is it possible to use dynamic programming to find the LCSS between the three sequences? If yes, provide recursive solution to the above problem.arrow_forwardJava: Consider the following algorithm for searching in an unsorted array. If the size of the array is 1, then check if it contains the element to be searched. Otherwise, divide the array into two halves, and recursively search both halves. Which of (a)–(c) is false? The running time of this algorithm is O(N) The actual running time of this algorithm is likely to be better than sequential search. This is an example of a divide‐and‐conquer algorithm all of the above are true none of the above is truearrow_forwardLet A be an array of n integers: (a) Write a pseudo code for a divide-and-conquer algorithm that computes the MAX and MIN values in array A . (b) Write the recurrence for this algorithm. (c) Solve the recurrence using the substitution method.arrow_forward
arrow_back_ios
arrow_forward_ios
Recommended textbooks for you
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education

Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education

Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON

Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON

C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON

Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning

Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education