Question: Hi, I am taking a Data Structures & Algorithms class in Java this semester and I am confused with the second part of the assignment

Hi,

I am taking a Data Structures & Algorithms class in Java this semester and I am confused with the second part of the assignment that is dealing Arrays and merging/sorting them, so some help would be well appreciated!

Thank you!

Assignment Prompt:

Hi, I am taking a Data Structures & Algorithms class in Java

Note from the professor about assignment:

When you work on Problem 2 (adding a Merge() method), you should add this method in the class OrderedArray. The method heading could be:

public OrderedArray merge (OrderedArray srcArr1, OrderedArray srcArr2)

OR

public OrderedArray merge (OrderedArray other)

If you use the first method heading, it means to merge srcArr1 and srcArr2, then return the destArr

When you test it in the driver class OrderedArrayApp, you need to pass two OrderedArray reference variables as parameter and use one of them to call the method.

OrderedArray srcArr1 = new OrderedArray(10);

OrderedArray srcArr2 = new OrderedArray(5);

//code to call insert method to fill srcArr1 and srcArr2

OrderedArray destArr = srcArr1.merge(srcArr1, srcArr2);

/* you also could use

* OrderedArray destArr = srcArr2.merge(srcArr1, srcArr2);

*/

If you use the second method heading, it means to merge this and other, then return the destArr

When you test it in the driver class OrderedArrayApp, you use the reference variable of one OrderedArray to call the method and pass another OrderedArray reference variable as parameter.

OrderedArray srcArr1 = new OrderedArray(10);

OrderedArray srcArr2 = new OrderedArray(5);

//code to call insert method to fill srcArr1 and srcArr2

OrderedArray destArr = srcArr1.merge(srcArr2);

/* you also could use

* OrderedArray destArr = srcArr2.merge(srcArr1);

*/

OrderedArray Class Sample Code:

package orderedArray;

class OrderedArray { private long[] a; // ref to array a private int nElems; // number of data items //----------------------------------------------------------- public OrderedArray(int max) // constructor { a = new long[max]; // create array nElems = 0; } //----------------------------------------------------------- public int size() { return nElems; } //----------------------------------------------------------- public int find(long searchKey) { int lowerBound = 0; int upperBound = nElems-1; int curIn; while(true) { curIn = (lowerBound + upperBound ) / 2; if(a[curIn]==searchKey) return curIn; // found it else if(lowerBound > upperBound) return nElems; // can't find it else // divide range { if(a[curIn] value) // (linear search) break; for(int k=nElems; k>j; k--) // move bigger ones up a[k] = a[k-1]; a[j] = value; // insert it nElems++; // increment size } // end insert() //----------------------------------------------------------- public boolean delete(long value) { int j = find(value); if(j==nElems) // can't find it return false; else // found it { for(int k=j; k

OrderedArrayApp Sample Code:

package orderedArray;

public class OrderedArrayApp { public static void main(String[] args) { int maxSize = 100; // array size OrderedArray arr; // reference to array arr = new OrderedArray(maxSize); // create the array

arr.insert(77); // insert 10 items arr.insert(99); arr.insert(44); arr.insert(55); arr.insert(22); arr.insert(88); arr.insert(11); arr.insert(00); arr.insert(66); arr.insert(33);

int searchKey = 55; // search for item if( arr.find(searchKey) != arr.size() ) System.out.println("Found " + searchKey); else System.out.println("Can't find " + searchKey);

arr.display(); // display items

arr.delete(00); // delete 3 items arr.delete(55); arr.delete(99);

arr.display(); // display items again } // end main()

}

Add a mergel) method to the QrderedAxay class so that you can merge two ordered source arrays into an ordered destination array. Write code in main() of OrderedArrayApp.java that inserts some random numbers into the two source arrays, calls merge (), and displays the contents of the resulting destination array. The source arrays may hold different numbers of data items. In your algorithm, you will need to compare the elements of the source arrays picking the smaller one to copy to the destination array. You'll also need to handle the situation when one source array exhausts its contents before the other. For example, assume two sources arrays are srcArray1: 12 28 30 srcArray2: 2 4 11 19 25 50 89 Then, the destination array should be: desArrav: 2 4 11 12 19 25 28 30 50 89

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!