READY CAREFULLY Java add COMMENT TO CODE, please  TEST-CASE on how you would test your solution assumptions and hence your code. Example of cases to be tested for are like : What if the array input which is expected does not exist - that is , input is a null. How should your code handle such a situation ? Maybe output some message like "Null input case, so no output"? What if the length of the array is one ?....so on and so forth.   In this assignment you are required programs which takes as input two sorted arrays and returns a new array containing the elements found in both the sorted arrays. It is alright if the input arrays have duplicates, but the returned array should be duplicate free!      Below is how the arrays are represented   ARRAY1[] = [1, 5, 6, 6, 9, 9, 9, 11, 11, 21] Here length of ARRAY1 is m.   ARRAY2[] = [6, 6, 9, 11, 21, 21, 21] Here length of ARRAY2 is n.   Array to be returned would be: ARRAY[] = [6, 9, 11, 21]   ANSWER THE QUESTION BELOW.  Implement the function in such a way that your solution solves the problem with O(nlog(m)) time complexity. This brute-force method suggested has a name called "loop-join" where you basically just traverse through the elements of one array comparing it to the elements of the other array.      2. In the form of sentences, as a comment in your code (at the bottom of your Solution2), you are required to suggest how can Solution2 be improved by leveraging the fact that both the arrays are already sorted. Suggest a solution so that your suggested solution can run linearly with O(m + n) time complexity. 5 sentences or less.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

READY CAREFULLY

Java add COMMENT TO CODE, please  TEST-CASE on how you would

test your solution assumptions and hence your code.

Example of cases to be tested for are like : What if the array input which

is expected does not exist - that is , input is a null. How should your code

handle such a situation ? Maybe output some message like "Null input

case, so no output"? What if the length of the array is one ?....so on and

so forth.

 

In this assignment you are required programs which takes as input two sorted arrays and returns a new array containing the elements found in both the sorted arrays. It is alright if the input arrays have duplicates, but the returned array should be duplicate free! 

 

 

Below is how the arrays are represented

 

ARRAY1[] = [1, 5, 6, 6, 9, 9, 9, 11, 11, 21]

Here length of ARRAY1 is m.

 

ARRAY2[] = [6, 6, 9, 11, 21, 21, 21]

Here length of ARRAY2 is n.

 

Array to be returned would be:

ARRAY[] = [6, 9, 11, 21]

 

ANSWER THE QUESTION BELOW.

  1.  Implement the function in such a way that your solution solves the problem with O(nlog(m)) time complexity. This brute-force method suggested has a name called "loop-join" where you basically just traverse through the elements of one array comparing it to the elements of the other array.

     2. In the form of sentences, as a comment in your code (at the bottom of your Solution2), you are required to suggest how can Solution2 be improved by leveraging the fact that both the arrays are already sorted. Suggest a solution so that your suggested solution can run linearly with O(m + n) time complexity. 5 sentences or less.

 

Expert Solution
Step 1

Find the duplicates in two sorted arrays :

program in java:

public class arrayduplicates {
     public static void main(String[] args) {
          int[] arr1 = {1,5,6,6,9,9,9,11,11,21};
          int[] arr2 = {6, 6, 9, 11, 21, 21, 21};
          Integer[] duplicates = duplicates(arr1, arr2);
          for(Integer d: duplicates) {
            System.out.println(d.intValue());
           }
      }
     public static Integer[] duplicates(int[] arr1, int[] arr2) {
            List<Integer> duplicates = new ArrayList<Integer>();
            for(int count = 0; count < sorted1.length; count ++) {
                  for(int counter = 0; counter < arr2.length; counter ++) {
                       if(sorted1[count] == arr22[counter]) {
                            duplicates.add(arr1[count]);
                       } else if(arr1[count] < arr2[counter]) {
                          break;
                       }
                   }    
             }
    return duplicates.toArray(new Integer[duplicates.size()]);
    }
}
the above program time complexity is O(n log m)
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Array
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
Recommended textbooks for you
Database System Concepts
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)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education