修改二分查找法的递归程序(binarySearch.py),设法从命令行参数中荻 取测试列表的各元素以及所要查找的关键字
时间: 2024-03-01 17:49:34 浏览: 75
以下是修改后的代码(binarySearch_updated.py),可以从命令行参数中获取测试列表和所要查找的关键字:
```python
import sys
def binarySearch(arr, low, high, x):
if high >= low:
mid = (high + low) // 2
if arr[mid] == x:
return mid
elif arr[mid] > x:
return binarySearch(arr, low, mid - 1, x)
else:
return binarySearch(arr, mid + 1, high, x)
else:
return -1
# 从命令行参数中获取测试列表和所要查找的关键字
test_list = list(map(int, sys.argv[1:-1]))
key = int(sys.argv[-1])
# 在测试列表中查找关键字
result = binarySearch(test_list, 0, len(test_list)-1, key)
if result != -1:
print(f"元素在索引{result}位置")
else:
print("元素不在列表中")
```
使用方法:
在命令行中输入以下命令:
```
python binarySearch_updated.py 1 2 3 4 5 6 7 8 9 10 5
```
其中,`1 2 3 4 5 6 7 8 9 10` 是测试列表的各元素,`5` 是所要查找的关键字。程序将输出:`元素在索引4位置`。
阅读全文