java合并俩个有序数组
时间: 2023-10-14 21:02:29 浏览: 92
合并两个有序数组.md
要合并两个有序数组,可以使用双指针的方法。假设有两个有序数组 `arr1` 和 `arr2`,要将它们合并到一个新的数组 `result` 中。
```java
public static int[] mergeSortedArrays(int[] arr1, int[] arr2) {
int len1 = arr1.length;
int len2 = arr2.length;
int[] result = new int[len1 + len2];
int i = 0, j = 0, k = 0;
while (i < len1 && j < len2) {
if (arr1[i] <= arr2[j]) {
result[k++] = arr1[i++];
} else {
result[k++] = arr2[j++];
}
}
while (i < len1) {
result[k++] = arr1[i++];
}
while (j < len2) {
result[k++] = arr2[j++];
}
return result;
}
```
这段代码中,我们使用三个指针 `i`、`j`、`k` 分别指向 `arr1`、`arr2` 和 `result` 数组的当前位置。我们比较 `arr1[i]` 和 `arr2[j]` 的值,将较小的值放入 `result[k]`,然后将对应指针向前移动一步。最后,当其中一个数组遍历完后,我们将另一个数组中剩下的元素依次放入 `result` 中。
调用这个方法,可以实现合并两个有序数组:
```java
int[] arr1 = {1, 3, 5, 7};
int[] arr2 = {2, 4, 6, 8};
int[] merged = mergeSortedArrays(arr1, arr2);
System.out.println(Arrays.toString(merged));
```
输出结果为:
```
[1, 2, 3, 4, 5, 6, 7, 8]
```
这样,我们就成功地将两个有序数组合并成一个有序数组了。希望能对你有所帮助!如有任何疑问,请随时提问。
阅读全文