1、实验目的与要求 1).掌握顺序查找,二分法查找和分块查找的算法。 2).能运用线性表的查找方法解决实际问题 2、实验内容 给出在一个递增有序表A中采用二分查找算法查找值为x的元素的递归算法 。
时间: 2024-03-13 21:43:43 浏览: 64
实验目的与要求:
1. 掌握顺序查找、二分法查找和分块查找的算法;
2. 能够运用线性表的查找方法解决实际问题。
实验内容:
给出在一个递增有序表 A 中采用二分查找算法查找值为 x 的元素的递归算法。
二分查找算法,也称折半查找算法,是一种在有序数组中查找特定元素的搜索算法。该算法从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果中间元素小于要查找的元素,则在数组的右半部分继续查找;如果中间元素大于要查找的元素,则在数组的左半部分继续查找,直到找到要查找的元素为止。
二分查找算法的递归实现如下:
```python
def binary_search(arr, low, high, x):
if high >= low:
mid = (high + low) // 2
if arr[mid] == x:
return mid
elif arr[mid] > x:
return binary_search(arr, low, mid - 1, x)
else:
return binary_search(arr, mid + 1, high, x)
else:
return -1
```
其中,arr 表示有序数组,low 表示数组的起始下标,high 表示数组的结束下标,x 表示要查找的元素。如果数组中存在该元素,则返回它的下标;否则返回 -1。
阅读全文