Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- //Andy Zhang, 2
- public class Merge
- {
- public void merge(ArrayList <Integer> a, ArrayList <Integer> b, ArrayList <Integer> c)
- {
- if (a.size() == 0)
- {
- for (int x = 0; x < a.size(); x++)
- {
- c.add(a.get(x));
- }
- }
- else if (b.size() == 0)
- {
- for (int y = 0; y < b.size(); y++)
- {
- c.add(b.get(y));
- }
- }
- else
- {
- while (a.size() != 0 && b.size() != 0)
- {
- if (a.get(0) < b.get(0))
- {
- c.add(a.get(0));
- a.remove(0);
- }
- else
- {
- c.add(b.get(0));
- b.remove(0);
- }
- }
- if (a.size() == 0)
- {
- for (int x = 0; x < a.size(); x++)
- {
- c.add(a.get(x));
- }
- }
- else if (b.size() == 0)
- {
- for (int y = 0; y < b.size(); y++)
- {
- c.add(b.get(y));
- }
- }
- }
- screenOutput(c);
- }
- /**
- * Initializes and returns temp with random integers in the range
- * 1 to largestInt
- *
- * @return an ArrayList of size specified by the user filled
- * with random numbers
- */
- public ArrayList <Integer> fillArray(int numInts, int largestInt)
- {
- Scanner console = new Scanner(System.in);
- System.out.println();
- System.out.print("How many numbers do you wish to generate? ");
- numInts = console.nextInt();
- ArrayList <Integer> temp = new ArrayList <Integer> ();
- System.out.print("Largest integer to generate? ");
- largestInt = console.nextInt();
- Random randGen = new Random();
- for (int loop = 0; loop < numInts; loop++)
- {
- temp.add(randGen.nextInt(largestInt) + 1);
- }
- return temp;
- }
- /**
- * Prints out the contents of the array in tabular form, 20 columns
- */
- public void screenOutput(ArrayList <Integer> temp)
- {
- for (int loop = 0; loop < temp.size(); loop++)
- {
- if (loop % 15 == 0)
- {
- System.out.println();
- }
- System.out.printf("%5d",temp.get(loop));
- }
- System.out.println();
- }
- public ArrayList <Integer> insertionSort(ArrayList <Integer> list)
- {
- for (int outer = 1; outer < list.size(); outer++){
- int position = outer;
- int key = list.get(position);
- // Shift larger values to the right
- while (position > 0 && list.get(position - 1) > key){
- list.set(position, list.get(position - 1));
- position--;
- }
- list.set(position, key);
- }
- return list;
- }
- public void mergeRun()
- {
- ArrayList <Integer> empty = new ArrayList <Integer> ();
- merge(insertionSort(fillArray(20, 100)), insertionSort(fillArray(40, 100)), empty);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement