並べ替えられた2つの配列をマージ
1225 ワード
public static void main(String[] args) {
int[] data1 = {1, 3, 5, 7};
int[] data2 = {2, 4, 6, 8};
int[] dataMerged = mergeArray(data1, data2);
for (int i = 0; i < dataMerged.length; i++) {
System.out.println(i + " : " + dataMerged[i]);
}
}
public static int[] mergeArray(int[] array1, int[] array2) {
int length = array1.length + array2.length;
int[] arrayMerged = new int[length];
int i = 0;
int j = 0;
int k = 0;
int length1 = array1.length;
int length2 = array2.length;
while (i< length1 && j < length2) {
if (array1[i] < array2[j]) { // ,
arrayMerged[k++] = array1[i++];
} else if (array1[i] > array2[j]) {
arrayMerged[k++] = array2[j++];
} else {
arrayMerged[k++] = array1[i++];
arrayMerged[k++] = array1[j++];
}
}
if (i >= length1) {
while (j < length2) {
arrayMerged[k++] = array2[j++];
}
} else {
while (i < length1) {
arrayMerged[k++] = array1[i++];
}
}
return arrayMerged;
}
2つの並べ替えられた配列を別の配列に結合します.
まず条件を求めます:2つの配列要素はすでに秩序化されています;配列のサイズが不定です.
最後の結果:2つの配列のすべての要素を含む新しい配列が形成され、新しい配列は秩序化されています.
コードは上記の通りです.