封装函数实现在一个有序数组中查找一个元素,并统计查找次数
时间: 2024-09-12 07:12:35 浏览: 48
封装函数实现在一个有序数组中查找一个元素并统计查找次数通常可以设计成一个名为`binarySearchAndCount`的方法,它接受两个参数:一个已排序的整数数组`arr`和一个目标值`target`。以下是Python的一个实现示例:
```python
def binarySearchAndCount(arr, target):
left = 0
right = len(arr) - 1
count = 0
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
# 如果找到目标元素,将count加一,并继续搜索左右两边,防止重复计数
count += 1
# 搜索左半部分
i = mid - 1
while i >= 0 and arr[i] == target:
count += 1
i -= 1
# 搜索右半部分
j = mid + 1
while j < len(arr) and arr[j] == target:
count += 1
j += 1
break
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return count, target in arr # 返回查找次数和是否存在该目标元素的布尔值
# 示例
arr = [1, 2, 2, 3, 4, 4, 4, 5]
target = 4
result = binarySearchAndCount(arr, target)
print(f"查找次数: {result[0]}, 目标元素存在: {result[1]}")
阅读全文