用Java编写有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中合适的位置中去。 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置
时间: 2024-10-11 13:15:39 浏览: 24
带参数的方法=-java中的语法理解
在Java中,可以使用二分查找法(Binary Search)找到合适的位置,并结合循环来插入新元素。以下是一个简单的实现示例:
```java
public class InsertSortedArray {
public static void main(String[] args) {
int[] sortedArray = {1, 3, 5, 7, 9}; // 已经排序好的数组
int numToInsert = 4; // 需要插入的数
// 使用二分查找找到插入位置
int index = binarySearch(sortedArray, numToInsert);
// 插入新元素
if (index < sortedArray.length) {
System.arraycopy(sortedArray, index, sortedArray, index + 1, sortedArray.length - index - 1);
sortedArray[index] = numToInsert;
System.out.println("插入后的数组: ");
printArray(sortedArray);
} else {
System.out.println("无法插入,因为数组已满");
}
}
private static int binarySearch(int[] arr, int target) {
int left = 0, right = arr.length - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return left;
}
// 打印数组
private static void printArray(int[] array) {
for (int i : array) {
System.out.print(i + " ");
}
System.out.println();
}
}
阅读全文