在一个排好顺序的数组中,输入一个数,要求按原顺序插入并输出java
时间: 2024-03-23 15:40:29 浏览: 58
有一个已排好序的数组,今输入一个数,要求按排序的规律将它插入数组中。
好的,这是一个很基础的数组插入问题,下面是Java实现的代码:
```java
import java.util.Arrays;
public class InsertNumToArray {
public static void main(String[] args) {
int[] arr = {1, 3, 5, 7, 9}; // 已排序数组
int num = 6; // 要插入的数
int[] newArr = new int[arr.length + 1]; // 新建一个长度加1的数组
int index = 0; // 插入位置
for (int i = 0; i < arr.length; i++) {
if (num < arr[i]) { // 找到插入位置
index = i;
break;
} else {
index = i + 1;
}
}
// 将原数组分为两段,分别复制到新数组中
System.arraycopy(arr, 0, newArr, 0, index);
System.arraycopy(arr, index, newArr, index + 1, arr.length - index);
newArr[index] = num; // 在插入位置插入新元素
System.out.println(Arrays.toString(newArr)); // 输出新数组
}
}
```
首先定义了一个已排序的数组 `arr` 和一个要插入的数 `num`,然后新建一个长度比原数组多1的新数组 `newArr`。接着使用 for 循环找到要插入的位置 `index`,当找到第一个大于 `num` 的元素时,就说明要将 `num` 插入到当前位置,跳出循环。之后使用 `System.arraycopy()` 方法复制原数组的前半段到新数组中,再复制原数组的后半段到新数组的后半段中,最后在插入位置插入新元素 `num`,完成数组插入操作。最后输出新数组即可。
阅读全文