1.定义方法,将两个升序的数组合并为新数组,并保持升序;在main方法中定义两个数组
时间: 2023-08-08 19:01:15 浏览: 49
首先,在main方法中定义两个升序的数组,分别为arr1和arr2。然后,定义一个方法来合并这两个数组并保持升序。
方法的输入参数为两个数组,输出为合并后的新数组。方法的逻辑如下:
1. 创建一个新的空数组newArr,用于存放合并后的结果。
2. 定义两个变量,分别表示arr1和arr2的当前元素的下标,初始值为0。
3. 使用一个循环,不断比较arr1和arr2的当前元素,将较小的元素放入newArr,并将对应数组的下标向后移动一位。
4. 循环结束的条件是arr1或arr2的下标大于等于数组的长度,即其中一个数组已经遍历完毕。
5. 当其中一个数组遍历完毕后,将另一个数组中剩余的元素依次放入newArr中。
6. 返回newArr作为方法的输出。
在main方法中,调用上述定义的方法,并将arr1和arr2作为输入参数。将得到的新数组打印输出,即为合并后的结果。
示例代码如下:
```
public class MergeArrays {
public static void main(String[] args) {
int[] arr1 = {1, 3, 5, 7, 9};
int[] arr2 = {2, 4, 6, 8, 10};
int[] mergedArr = mergeArrays(arr1, arr2);
System.out.println("合并后的数组为:");
for (int num : mergedArr) {
System.out.print(num + " ");
}
}
public static int[] mergeArrays(int[] arr1, int[] arr2) {
int len1 = arr1.length;
int len2 = arr2.length;
int[] newArr = new int[len1 + len2];
int i = 0, j = 0, k = 0;
while (i < len1 && j < len2) {
if (arr1[i] < arr2[j]) {
newArr[k++] = arr1[i++];
} else {
newArr[k++] = arr2[j++];
}
}
while (i < len1) {
newArr[k++] = arr1[i++];
}
while (j < len2) {
newArr[k++] = arr2[j++];
}
return newArr;
}
}
```
运行以上代码,输出结果为:
合并后的数组为:
1 2 3 4 5 6 7 8 9 10