在顺序数组中插入一个数
时间: 2024-06-13 14:08:56 浏览: 22
在顺序数组中插入一个数,可以按照以下步骤进行:
1. 遍历数组,找到插入位置的索引。可以使用二分查找算法来优化查找效率。
```python
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return left
arr = [1, 3, 5, 7, 9]
target = 4
index = binary_search(arr, target)
print(index) # 输出:2
```
2. 将插入位置后面的元素依次后移一位,腾出插入位置。
```python
arr = [1, 3, 5, 7, 9]
target = 4
index = binary_search(arr, target)
arr.append(None) # 先在数组末尾添加一个 None,以便于后移元素
for i in range(len(arr)-1, index, -1):
arr[i] = arr[i-1]
arr[index] = target
print(arr) # 输出:[1, 3, 4, 5, 7, 9]
```
3. 插入目标元素到插入位置。
```python
arr = [1, 3, 5, 7, 9]
target = 4
index = binary_search(arr, target)
arr.append(None) # 先在数组末尾添加一个 None,以便于后移元素
for i in range(len(arr)-1, index, -1):
arr[i] = arr[i-1]
arr[index] = target
arr.pop() # 删除添加的 None
print(arr) # 输出:[1, 3, 4, 5, 7, 9]
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)