用Python9、有一个已经排好序的数组(a = [1,4,6,9,13,16,19,28])。现输入一个数,要求按原来的规律将它插入数组中。
时间: 2023-08-28 09:03:27 浏览: 101
好的,这是一道经典的算法题,我们可以使用二分查找来找到插入位置,然后在数组中插入该元素。以下是Python代码实现:
```python
def insert_num(arr, num):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == num:
arr.insert(mid, num)
return
elif arr[mid] < num:
left = mid + 1
else:
right = mid - 1
arr.insert(left, num)
```
我们先定义了一个 `insert_num` 函数,接收两个参数:已经排好序的数组 `arr` 和需要插入的数字 `num`。接下来,我们使用二分查找的方式来找到 `num` 在 `arr` 中应该插入的位置,然后使用 `list.insert` 方法将其插入数组中即可。
测试一下:
```python
a = [1, 4, 6, 9, 13, 16, 19, 28]
print(a)
insert_num(a, 10)
print(a)
```
输出:
```
[1, 4, 6, 9, 13, 16, 19, 28]
[1, 4, 6, 9, 10, 13, 16, 19, 28]
```
可以看到,插入数字 10 后,数组仍然是有序的。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.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://img-home.csdnimg.cn/images/20250102104920.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)