使用二分查找方法在table数组中找出值为item的数是否存在。若找到则令flag值为1,否则为0。
时间: 2024-10-15 15:23:12 浏览: 15
二分查找(Binary Search),也称折半查找,是一种在有序数组中查找特定元素的搜索算法。其基本思想是将数组持续地分成两部分,每次都定位到中间元素,然后比较目标值与中间元素的大小关系:
1. 如果目标值等于中间元素,那么`flag`设为1表示找到了,并返回当前索引;
2. 如果目标值小于中间元素,则在左半部分继续查找,即在中间元素的左侧范围进行同样的操作;
3. 如果目标值大于中间元素,则在右半部分查找,即在中间元素的右侧范围进行同样的操作。
这个过程会一直持续到找到目标值或者确定目标值不存在于数组中。如果遍历完整个数组都没有找到目标值,`flag`将保持为0。
以下是简单的Python示例代码实现这一功能:
```python
def binary_search(table, item):
low = 0
high = len(table) - 1
flag = 0
while low <= high:
mid = (low + high) // 2
if table[mid] == item:
flag = 1
break
elif table[mid] < item:
low = mid + 1
else:
high = mid - 1
return flag
# 使用示例
table = [1, 3, 5, 7, 9]
item = 5
result = binary_search(table, item)
if result == 1:
print(f"Value {item} found.")
else:
print(f"Value {item} not found.")
```
阅读全文