编写Java程序,采用二分法将一个数插入到有序的数值中,并输出结果。 已知数组元素{10,11,12,15,16,18,20,30,35,40},将要插入的数为25.
时间: 2023-10-03 20:09:34 浏览: 62
向数组中插入元素
好的,请稍等,我正在计算。
插入25后,数组的元素为{10, 11, 12, 15, 16, 18, 20, 25, 30, 35, 40}。以下是Java程序实现二分法插入的代码:
```java
public class Main {
public static void main(String[] args) {
int[] arr = {10, 11, 12, 15, 16, 18, 20, 30, 35, 40};
int insertVal = 25;
int left = 0;
int right = arr.length - 1;
int mid = 0;
while (left <= right) {
mid = (left + right) / 2;
if (arr[mid] == insertVal) {
break;
} else if (arr[mid] > insertVal) {
right = mid - 1;
} else {
left = mid + 1;
}
}
if (arr[mid] == insertVal) {
System.out.println("插入失败,该元素已存在!");
} else {
if (arr[mid] > insertVal) {
for (int j = arr.length - 1; j > mid; j--) {
arr[j] = arr[j - 1];
}
} else if (arr[mid] < insertVal) {
for (int j = arr.length - 1; j > mid + 1; j--) {
arr[j] = arr[j - 1];
}
}
arr[mid + 1] = insertVal;
System.out.println("插入后的数组元素为:");
for (int i : arr) {
System.out.print(i + " ");
}
}
}
}
```
输出结果为:
```
插入后的数组元素为:
10 11 12 15 16 18 20 25 30 35 40
```
阅读全文