Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class HW2part2
  4. {
  5.  
  6. public static void mergeSort(Comparable [ ] a)
  7. {
  8. Comparable[] tmp = new Comparable[a.length];
  9. mergeSort(a, tmp, 0, a.length - 1);
  10. }
  11.  
  12.  
  13. private static void mergeSort(Comparable [ ] a, Comparable [ ] tmp, int left, int right)
  14. {
  15. if( left < right )
  16. {
  17. int center = (left + right) / 2;
  18. mergeSort(a, tmp, left, center);
  19. mergeSort(a, tmp, center + 1, right);
  20. merge(a, tmp, left, center + 1, right);
  21. }
  22. }
  23.  
  24.  
  25. private static void merge(Comparable[ ] a, Comparable[ ] tmp, int left, int right, int rightEnd )
  26. {
  27. int leftEnd = right - 1;
  28. int k = left;
  29. int num = rightEnd - left + 1;
  30.  
  31. while(left <= leftEnd && right <= rightEnd)
  32. if(a[left].compareTo(a[right]) <= 0)
  33. tmp[k++] = a[left++];
  34. else
  35. tmp[k++] = a[right++];
  36.  
  37. while(left <= leftEnd) // Copy rest of first half
  38. tmp[k++] = a[left++];
  39.  
  40. while(right <= rightEnd) // Copy rest of right half
  41. tmp[k++] = a[right++];
  42.  
  43. // Copy tmp back
  44. for(int i = 0; i < num; i++, rightEnd--)
  45. a[rightEnd] = tmp[rightEnd];
  46. }
  47.  
  48. public static <E extends Comparable <E>> E max(E[] [] list){
  49. int max = 0;
  50. int saveI = 0;
  51. int saveJ = 0;
  52. for (int i = 0; i < list.length; i++){
  53. for (int j = 0; j < list[i].length; j++)
  54. if (max < ((Character) list[i][j])) {
  55. max = (Character)list[i][j];
  56. saveI = i;
  57. saveJ = j;
  58. }
  59. }
  60. return list[saveI][saveJ];
  61. }
  62. public static void main(String[] args)
  63. {
  64. System.out.println("Would you like 1 or 2 arrays?");
  65. int num = new Scanner(System.in).nextInt();
  66. if (num == 1 || num == 2){
  67. if (num == 1){
  68. Character[] a = getMyArray();
  69. }
  70. if (num == 2){
  71. Character[] a = getMyArray();
  72. Character[] b = getMyArray();
  73. Character[][] c = {a,b};
  74. System.out.println(max(c));
  75. }
  76. }else
  77. System.out.println("Invalid amount of arrays. Restart Program.");
  78. }
  79.  
  80. private static Character [] getMyArray(){
  81. Scanner scan = new Scanner(System.in);
  82. ArrayList<Character> chArray = new ArrayList<Character>();
  83. System.out.println("Input a character for each line");
  84. while(true){
  85. System.out.print("> ");
  86. String input = scan.nextLine();
  87. if (input.equals(""))
  88. break;
  89. Character save = input.charAt(0);
  90. if (save.equals(' '))
  91. break;
  92. chArray.add(save);
  93. }
  94. Character[] converter = new Character[chArray.size()];
  95. converter = chArray.toArray(converter);
  96. mergeSort(converter);
  97. System.out.println(Arrays.toString(converter));
  98. return converter;
  99. }
  100.  
  101.  
  102. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement