java的有序数组合并
时间: 2024-09-17 08:06:01 浏览: 34
归并算法之有序数组合并算法实现
在Java中,有序数组合并通常是指将两个已排序的数组合并成一个新的有序数组。这可以手动完成,也可以通过迭代、递归或其他数据结构如堆、归并排序等方式实现。下面是一个简单的示例,使用了双指针法:
```java
public class MergeSortedArrays {
public static int[] merge(int[] nums1, int m, int[] nums2, int n) {
if (m == 0) return nums2;
if (n == 0) return nums1;
// 初始化结果数组
int[] merged = new int[m + n];
int i = 0, j = 0, k = 0;
// 比较并按顺序添加元素到新数组
while (i < m && j < n) {
if (nums1[i] <= nums2[j]) {
merged[k++] = nums1[i++];
} else {
merged[k++] = nums2[j++];
}
}
// 如果其中一个数组还剩余元素,直接复制过来
while (i < m) {
merged[k++] = nums1[i++];
}
while (j < n) {
merged[k++] = nums2[j++];
}
return merged;
}
}
```
在这个例子中,`merge`函数接收两个已排序的整数数组`nums1`和`nums2`,以及它们各自的长度`m`和`n`。它遍历两个数组,每次都选择较小的元素放入结果数组`merged`,直到其中一个数组遍历完,然后将另一个数组剩余的部分直接添加到结果。
阅读全文