已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中
时间: 2023-06-05 07:48:06 浏览: 106
有一个已排好序的数组,今输入一个数,要求按排序的规律将它插入数组中。
可以使用二分查找的方法找到新数应该插入的位置,然后将数组中该位置及其后面的数都向后移动一位,最后将新数插入该位置即可。具体步骤如下:
1. 定义一个已排好序的数组和一个新数。
2. 使用二分查找的方法找到新数应该插入的位置,即在数组中找到第一个大于等于新数的位置。
3. 将该位置及其后面的数都向后移动一位,即从数组末尾开始,将该位置及其后面的数都向后移动一位,直到该位置。
4. 将新数插入该位置。
5. 输出插入后的数组。
示例代码如下:
```python
# 已排好序的数组
arr = [1, 3, 5, 7, 9]
# 新数
num = 4
# 二分查找新数应该插入的位置
left, right = , len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] < num:
left = mid + 1
else:
right = mid - 1
# 将该位置及其后面的数都向后移动一位
for i in range(len(arr) - 1, left - 1, -1):
arr[i + 1] = arr[i]
# 将新数插入该位置
arr[left] = num
# 输出插入后的数组
print(arr)
```
输出结果为:[1, 3, 4, 5, 7, 9]。
阅读全文