Advertisement
gluten_free_feeling

A18 Merge

Mar 8th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. import java.util.*;
  2. //Andy Zhang, 2
  3. public class Merge
  4. {
  5. public void merge(ArrayList <Integer> a, ArrayList <Integer> b, ArrayList <Integer> c)
  6. {
  7. if (a.size() == 0)
  8. {
  9. for (int x = 0; x < a.size(); x++)
  10. {
  11. c.add(a.get(x));
  12. }
  13. }
  14. else if (b.size() == 0)
  15. {
  16. for (int y = 0; y < b.size(); y++)
  17. {
  18. c.add(b.get(y));
  19. }
  20. }
  21. else
  22. {
  23. while (a.size() != 0 && b.size() != 0)
  24. {
  25. if (a.get(0) < b.get(0))
  26. {
  27. c.add(a.get(0));
  28. a.remove(0);
  29. }
  30. else
  31. {
  32. c.add(b.get(0));
  33. b.remove(0);
  34. }
  35. }
  36. if (a.size() == 0)
  37. {
  38. for (int x = 0; x < a.size(); x++)
  39. {
  40. c.add(a.get(x));
  41. }
  42. }
  43. else if (b.size() == 0)
  44. {
  45. for (int y = 0; y < b.size(); y++)
  46. {
  47. c.add(b.get(y));
  48. }
  49. }
  50. }
  51. screenOutput(c);
  52. }
  53. /**
  54. * Initializes and returns temp with random integers in the range
  55. * 1 to largestInt
  56. *
  57. * @return an ArrayList of size specified by the user filled
  58. * with random numbers
  59. */
  60. public ArrayList <Integer> fillArray(int numInts, int largestInt)
  61. {
  62. Scanner console = new Scanner(System.in);
  63. System.out.println();
  64. System.out.print("How many numbers do you wish to generate? ");
  65. numInts = console.nextInt();
  66. ArrayList <Integer> temp = new ArrayList <Integer> ();
  67. System.out.print("Largest integer to generate? ");
  68. largestInt = console.nextInt();
  69. Random randGen = new Random();
  70. for (int loop = 0; loop < numInts; loop++)
  71. {
  72. temp.add(randGen.nextInt(largestInt) + 1);
  73. }
  74. return temp;
  75. }
  76. /**
  77. * Prints out the contents of the array in tabular form, 20 columns
  78. */
  79. public void screenOutput(ArrayList <Integer> temp)
  80. {
  81. for (int loop = 0; loop < temp.size(); loop++)
  82. {
  83. if (loop % 15 == 0)
  84. {
  85. System.out.println();
  86. }
  87. System.out.printf("%5d",temp.get(loop));
  88. }
  89. System.out.println();
  90. }
  91. public ArrayList <Integer> insertionSort(ArrayList <Integer> list)
  92. {
  93. for (int outer = 1; outer < list.size(); outer++){
  94. int position = outer;
  95. int key = list.get(position);
  96.  
  97. // Shift larger values to the right
  98. while (position > 0 && list.get(position - 1) > key){
  99. list.set(position, list.get(position - 1));
  100. position--;
  101. }
  102. list.set(position, key);
  103. }
  104. return list;
  105. }
  106. public void mergeRun()
  107. {
  108. ArrayList <Integer> empty = new ArrayList <Integer> ();
  109. merge(insertionSort(fillArray(20, 100)), insertionSort(fillArray(40, 100)), empty);
  110. }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement