python 二分查找动图
时间: 2023-08-26 16:19:07 浏览: 113
当然可以!下面是一个示例代码,使用二分查找算法在Python中查找一个元素的位置,并生成动图来展示查找过程。
```python
import matplotlib.pyplot as plt
import numpy as np
def binary_search(arr, target):
left = 0
right = len(arr) - 1
steps = []
while left <= right:
mid = (left + right) // 2
steps.append((left, right, mid))
if arr[mid] == target:
return mid
if arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
def plot_binary_search(arr, target):
index = binary_search(arr, target)
fig, ax = plt.subplots()
ax.set_title('Binary Search')
ax.set_xlabel('Index')
ax.set_ylabel('Value')
x = np.arange(len(arr))
y = np.array(arr)
ax.plot(x, y, 'bo-', label='Array')
if index != -1:
ax.plot(index, arr[index], 'ro', label='Target')
ax.legend()
plt.show()
# 示例用法
array = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
target = 12
plot_binary_search(array, target)
```
运行以上代码,你将会看到一个动图,展示了二分查找算法在给定数组中查找目标元素的过程。蓝色的线表示数组,红色的点表示目标元素。希望这能帮到你!如果有任何疑问,请随时问我。
阅读全文