有一个排好序的数组,要求输入一个数之后,按原来的排序规律将它插入数组中
时间: 2023-05-18 08:03:02 浏览: 54
可以使用二分查找的方法来插入新的数。具体步骤如下:
1. 定义一个变量left和right,分别表示数组的左右边界,初始值为0和数组长度-1。
2. 使用二分查找的方法找到新数应该插入的位置。具体方法是,每次取数组中间的数mid,如果新数比mid小,则在左半部分继续查找,否则在右半部分继续查找。直到找到新数应该插入的位置为止。
3. 将新数插入到数组中。具体方法是,先将数组中新数应该插入的位置及其后面的数都向后移动一位,然后将新数插入到空出来的位置。
4. 输出插入后的数组。
下面是示例代码:
```python
def insert_num(arr, num):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] < num:
left = mid + 1
else:
right = mid - 1
arr.insert(left, num)
print(arr)
```
调用示例:
```python
arr = [1, 3, 5, 7, 9]
insert_num(arr, 4) # 输出 [1, 3, 4, 5, 7, 9]
insert_num(arr, 0) # 输出 [0, 1, 3, 4, 5, 7, 9]
insert_num(arr, 10) # 输出 [0, 1, 3, 4, 5, 7, 9, 10]
```
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)