有序顺序表的合并(java语言实现)
时间: 2024-10-14 22:16:44 浏览: 23
数据结构(Java语言描述) 案例02 有序顺序表的合并.docx
5星 · 资源好评率100%
有序顺序表的合并通常是指将两个已排序的数组合并成一个新的有序数组。在Java中,你可以通过遍历这两个列表,并选择较小的元素逐个添加到结果列表中来完成这个过程。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.List;
public class MergeSortedArrays {
public static int[] merge(int[] arr1, int[] arr2) {
// 创建一个足够大的列表来保存结果
List<Integer> result = new ArrayList<>();
// 指针分别指向两个输入数组的开始位置
int i = 0, j = 0;
// 遍历两个数组直到有一个结束
while (i < arr1.length && j < arr2.length) {
if (arr1[i] <= arr2[j]) { // 如果arr1的当前元素更小或相等
result.add(arr1[i]);
i++; // 移动arr1指针
} else { // 如果arr2的当前元素更小
result.add(arr2[j]);
j++; // 移动arr2指针
}
}
// 将剩余未添加到result的元素追加到列表中
while (i < arr1.length) {
result.add(arr1[i]);
i++;
}
while (j < arr2.length) {
result.add(arr2[j]);
j++;
}
// 转换回原始数组类型并返回结果
return result.toArray(new int[result.size()]);
}
public static void main(String[] args) {
int[] arr1 = {1, 3, 5};
int[] arr2 = {2, 4, 6};
int[] mergedArr = merge(arr1, arr2);
System.out.println(Arrays.toString(mergedArr)); // 输出: [1, 2, 3, 4, 5, 6]
}
}
```
在这个例子中,`merge`方法首先比较两个数组的当前元素,将较小的一个添加到结果列表中,然后移动相应的指针。当其中一个数组遍历完,就将另一个数组剩余的部分添加到结果。
阅读全文