python输入一批从小到大的整数,以回车结束,存入列表中。再输入一个要查找的数,输出此数在列表中的索引位置,如不存在则输出-1。用扫描法或者二分法都可以
时间: 2023-12-03 15:45:05 浏览: 26
我们可以先使用扫描法实现该功能。具体实现代码如下:
```python
num_list = list(map(int, input().split())) # 输入一批从小到大的整数,以空格分隔
x = int(input()) # 输入要查找的数
index = -1 # 初始化索引为-1
for i in range(len(num_list)):
if num_list[i] == x: # 找到要查找的数
index = i
break
print(index) # 输出索引位置
```
接下来我们用二分法进行实现。具体实现代码如下:
```python
num_list = list(map(int, input().split())) # 输入一批从小到大的整数,以空格分隔
x = int(input()) # 输入要查找的数
left, right = 0, len(num_list) - 1 # 定义左右边界
while left <= right:
mid = (left + right) // 2 # 计算中间位置
if num_list[mid] == x: # 找到要查找的数
print(mid)
break
elif num_list[mid] < x: # 在右半部分继续查找
left = mid + 1
else: # 在左半部分继续查找
right = mid - 1
else:
print(-1) # 没有找到要查找的数
```
以上两段代码分别使用了扫描法和二分法来实现在有序列表中查找一个数的功能。