@Test public void whenMergeTwoSortedArraysInOneThenResultOneSortedArray() { ExtraArrayTask array = new ExtraArrayTask(); int[] array1 = {1, 2, 3, 4, 9, 11, 14}; int[] array2 = {2, 4, 5, 7, 8}; int[] mergedArray = {1, 2, 2, 3, 4, 4, 5, 7, 8, 9, 11, 14}; assertThat(array.merge(array1,array2), is(mergedArray)); }
public int[] merge (int[] array1, int[] array2) { int[] resultArray = new int[array1.length + array2.length]; int indexArray1 = 0; int indexArray2 = 0; for (int i = 0; i < resultArray.length; i++) { if ((indexArray1 < array1.length) && (indexArray2 < array2.length)) { resultArray[i] = array1[indexArray1] < array2[indexArray2] ? array1[indexArray1++] : array2[indexArray2++]; } else if (indexArray1 == array1.length) { resultArray[i] = array2[indexArray2++]; } else if (indexArray2 == array2.length) { resultArray[i] = array1[indexArray1++]; } } return resultArray; }
ExtraArrayTask { public int[] merge (int[] array1, int[] array2) { int[] resultArray = new int[array1.length + array2.length]; int indexArray1 = 0; int indexArray2 = 0; for (int i = 0; i < resultArray.length; i++) { if ((indexArray1 < array1.length) && (indexArray2 < array2.length)) { resultArray[i] = array1[indexArray1] < array2[indexArray2] ? array1[indexArray1++] : array2[indexArray2++]; } else if (indexArray1 == array1.length) { resultArray[i] = array2[indexArray2++]; } else if (indexArray2 == array2.length) { resultArray[i] = array1[indexArray1++]; } } return resultArray; } }
ExtraArrayTask { public int[] merge (int[] array1, int[] array2) { int[] resultArray = new int[array1.length + array2.length]; int indexArray1 = 0; int indexArray2 = 0; for (int i = 0; i < resultArray.length; i++) { if ((indexArray1 < array1.length) && (indexArray2 < array2.length)) { resultArray[i] = array1[indexArray1] < array2[indexArray2] ? array1[indexArray1++] : array2[indexArray2++]; } else if (indexArray1 == array1.length) { resultArray[i] = array2[indexArray2++]; } else if (indexArray2 == array2.length) { resultArray[i] = array1[indexArray1++]; } } return resultArray; }  }
ExtraArrayTask { public int[] merge (int[] array1, int[] array2) { int[] resultArray = new int[array1.length + array2.length]; int indexArray1 = 0; int indexArray2 = 0; for (int i = 0; i < resultArray.length; i++) { if ((indexArray1 < array1.length) && (indexArray2 < array2.length)) { resultArray[i] = array1[indexArray1] < array2[indexArray2] ? array1[indexArray1++] : array2[indexArray2++]; } else if (indexArray1 == array1.length) { resultArray[i] = array2[indexArray2++]; } else if (indexArray2 == array2.length) { resultArray[i] = array1[indexArray1++]; } } return resultArray; }  int[] merge(int[] array1, int[] array2); }
ExtraArrayTask { public int[] merge (int[] array1, int[] array2) { int[] resultArray = new int[array1.length + array2.length]; int indexArray1 = 0; int indexArray2 = 0; for (int i = 0; i < resultArray.length; i++) { if ((indexArray1 < array1.length) && (indexArray2 < array2.length)) { resultArray[i] = array1[indexArray1] < array2[indexArray2] ? array1[indexArray1++] : array2[indexArray2++]; } else if (indexArray1 == array1.length) { resultArray[i] = array2[indexArray2++]; } else if (indexArray2 == array2.length) { resultArray[i] = array1[indexArray1++]; } } return resultArray; }  int[] merge(int[] array1, int[] array2);  }