编写函数,在一个有序列表中使用二分查找法查找某个元素。
要求定义main函数,从键盘行输入序列和要查找的元素,输出所在位置。
def binarySearch(list1,key,start,end):
#请在此添加代码,实现判断功能并返回结果
#********** Begin *********#
if(list1==[] or end==-1):
return -1
if(start>end):
return -1
mid =start+int((end-start)/2)
if(key==list1[mid]):
return mid
elif(key<list1[mid]):
return binarySearch(list1,key,start,mid-1);
else:
return binarySearch(list1,key,mid+1,end);
#********** End *********#
def main():
#请在此添加代码,输入整个列表和要查找的元素,调用函数输出元素位置
#********** Begin *********#
list1=list(map(int,input().split(',')))
list1.sort()
print('排序后的列表为{}'.format(list1))
key=list(map(int,input().split(',')))
for item in key:
result=binarySearch(list1,item,0,len(list1))
if(result!=-1):
print('{0}成功找到,位置为{1}'.format(item,result))
else:
print('{0}未找到'.format(item))
#********** End *********#
main()
|