import sys
def binary_search(arr, item):
"""
二分查找法
:param arr: 有序列表
:param item: 待查参数
:return: -1 表示未查到,若查询到则返回所在下标
"""
low = 0
high = len(arr)
if item < arr[0] or item > arr[high - 1]:
return -1
while low <= high:
mid = int(low + (high - low) / 2)
if arr[mid] < item:
low = mid + 1
elif arr[mid] > item:
high = mid - 1
else:
return mid
return -1
if __name__ == '__main__':
a = [x for x in range(10, 50)]
index = binary_search(a, int(sys.argv[1]))
if index == -1:
print("未找到")
else:
print("下标为:{},值为:{}".format(index, a[index]))