





代码实现:
def binary_search(sorted_arr, k):
low, high = 0, len(sorted_arr) - 1
count = 0 # 查找次数
while low <= high:
count += 1
mid = (low + high) // 2
if sorted_arr[mid] == k:
return 1, mid + 1, count # 返回位置(1-based index)和查找次数
elif sorted_arr[mid] > k:
high = mid - 1
else:
low = mid + 1
return 0, 0, count # 如果未找到,返回0和查找次数
def main():
T = int(input()) # 测试次数
results = []
for _ in range(T):
n, *arr = map(int, input().split())
k = int(input())
# 先将数组排序
sorted_arr = sorted(arr)
tes, position, count = binary_search(sorted_arr, k)
results.append(f"{tes} {position} {count}")
for result in results:
print(result)
if __name__ == "__main__":
main()
# 2
# 5 3 5 4 2 7
# 4
# 6 4 8 3 1 6 2
# 7
结果输出:
