描述
给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组
解题思路:
暴力解题法,先将B加入A数组之后,然后再排序
public void merge(int[] A, int m, int[] B, int n) {
//先扩容
A = java.util.Arrays.copyOf(A, m + n);
for (int i = 0; i < n; i++) {
A[m + i] = B[i];
}
for (int i = 0; i < (A.length - 1); i++) {
for (int j = 0; j < (A.length - i - 1); j++) {
if (A[j] > A[j + 1]) {
int temp = A[j];
A[j] = A[j + 1];
A[j + 1] = temp;
}
}
}
for (int i = 0; i < A.length; i++) {
System.out.print(A[i]);
}
}
当然了,也有System.arraycopy方法,直接复制,然后使用Arrays.sort进行排序
public void merge1(int[] A, int m, int[] B, int n) {
//先扩容
A = java.util.Arrays.copyOf(A, m + n);
System.arraycopy(B, 0, A, m, n);
Arrays.sort(A);
for (int i = 0; i < A.length; i++) {
System.out.print(A[i]);
}
}
|