在 一个存放了升序数据的整型数组中,插入若干个整数,要求该数组中的数据仍保持 升序。写出代码
时间: 2024-05-09 16:21:26 浏览: 36
基于C++,写一个程序 要求用户输入10个数据到数组中,然后将数组中最大值和最小值显示出来,并显示下标
我可以回答这个问题。以下是Java语言的代码实现:
```java
public static void insert(int[] arr, int[] nums) {
int i = arr.length - 1; // i指向arr数组的最后一个元素
int j = nums.length - 1; // j指向nums数组的最后一个元素
int k = arr.length + nums.length - 1; // k指向合并后数组的最后一个元素
while (j >= 0) { // 从后往前遍历nums数组
if (i >= 0 && arr[i] > nums[j]) { // 如果arr数组还有元素且比nums[j]大
arr[k--] = arr[i--]; // 将arr[i]放到合并后数组的最后
} else {
arr[k--] = nums[j--]; // 将nums[j]放到合并后数组的最后
}
}
}
```
调用示例:
```java
int[] arr = {1, 2, 4, 5, 7};
int[] nums = {3, 6};
insert(arr, nums);
System.out.println(Arrays.toString(arr)); // [1, 2, 3, 4, 5, 6, 7]
```
阅读全文