4、 分治法: 编写程序: 用二分法在有序表{3,4,10,13,33,42,46,63,76,78,95,96,120}中查找一个给定的数。
时间: 2024-01-20 12:03:26 浏览: 45
以下是使用分治法在有序表中查找给定数的程序示例:
```python
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2 if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
arr = [3, 4, 10, 13, 33, 42, 46, 63, 76, 78, 95, 96, 120]
target = 33
index = binary_search(arr, target)
if index != -1:
print("找到了,索引为:", index)
else:
print("未找到")
```
该程序使用二分法在有序表中查找给定的数。首先,将要查找的数与有序表的中间元素进行比较,如果相等,则返回该元素的索引;如果要查找的数小于中间元素,则在左半部分继续查找;如果要查找的数大于中间元素,则在右半部分继续查找。重复这个过程,直到找到要查找的数或者确定该数不存在于有序表中。
阅读全文