请输入n值,n个非降序排列的整数以及要查找的数x,使用二分查找算法查找x,输出x所在的下标(0~n-1)及比较次数。若x不存在,输出-1和比较次数。
时间: 2024-04-30 08:22:29 浏览: 75
二分查找旋转数组源码和视频
```python
n = int(input())
nums = list(map(int, input().split()))
x = int(input())
left, right = 0, n-1
count = 0
while left <= right:
mid = (left + right) // 2
count += 1
if nums[mid] == x:
print(mid, count-1)
break
elif nums[mid] < x:
left = mid + 1
else:
right = mid - 1
else:
print(-1, count)
```
注:else语句在while循环没有被break的情况下执行。
阅读全文