Java:有10个数,已经按从大到小的顺序排序,输入一个数,将它插入到原有数列中并保持从大到小的顺序不变,输出该数插入的位置
时间: 2024-10-10 15:06:39 浏览: 25
在Java中,如果你有一个已排序的整数数组,并想要插入一个新的数以保持原有的降序排列,你可以采用二分查找法来找到合适的位置。以下是步骤:
1. **初始化**:创建一个长度为10的初始数组,并填充从大到小的前10个整数。
```java
int[] sortedArray = new int[10];
// ... 填充数组,例如: sortedArray[0] = 99; sortedArray[1] = 98; ... sortedArray[9] = 90;
```
2. **插入操作**:假设新数值为`num`,你需要找到第一个大于等于`num`的元素的索引位置。这通过二分查找实现:
```java
int insertIndex = binarySearch(sortedArray, num, 0, sortedArray.length - 1);
```
```java
private int binarySearch(int[] array, int value, int left, int right) {
if (left > right) return left;
int mid = (left + right) / 2;
if (array[mid] >= value) {
return binarySearch(array, value, mid + 1, right);
} else {
return binarySearch(array, value, left, mid - 1);
}
}
```
3. **插入**:找到位置后,将新值插入相应位置,并确保数组依然有序:
```java
sortedArray.splice(insertIndex, 0, num); // 如果用的是ArrayList,可以使用这种方法
// 或者,如果数组是固定长度的数组,可以像下面这样更新:
sortedArray[insertIndex] = num;
```
4. **输出结果**:最后输出`insertIndex`即为插入的新数的位置。
阅读全文