java代码输入两个已经有序的int数组,合并到一个新数组中,新数组中的元素要是有序的输入示例:a=[1,3,4,5,6], b=[2,5,7,8,9],输出c=[1,2,3,4,5,5,6,7,8,9]
时间: 2023-08-19 19:23:03 浏览: 43
好的,下面是 Java 代码实现:
```java
public static int[] mergeSortedArrays(int[] a, int[] b) {
int m = a.length, n = b.length;
int i = 0, j = 0, k = 0;
int[] merged = new int[m + n];
while (i < m && j < n) {
if (a[i] <= b[j]) {
merged[k++] = a[i++];
} else {
merged[k++] = b[j++];
}
}
while (i < m) {
merged[k++] = a[i++];
}
while (j < n) {
merged[k++] = b[j++];
}
return merged;
}
```
这个方法与 Python 版本的实现类似,同样使用了双指针的方法。我们定义三个指针 `i`、`j` 和 `k`,分别指向数组 `a`、`b` 和新数组 `merged` 的当前位置。然后依次比较 `a` 和 `b` 中的元素,并将较小的元素加入到 `merged` 数组中。最后,如果 `a` 或 `b` 中还有剩余的元素,直接加入到 `merged` 数组的末尾即可。
使用示例:
```java
int[] a = {1, 3, 4, 5, 6};
int[] b = {2, 5, 7, 8, 9};
int[] c = mergeSortedArrays(a, b);
System.out.println(Arrays.toString(c));
```
输出结果为:
```
[1, 2, 3, 4, 5, 5, 6, 7, 8, 9]
```