嗨,我用一个非常简单的Python程序来实现二进制搜索。python中的二进制搜索程序错误
tup=input("enter tup:")
start=0
length=len[tup]
end=tup[length-1]
mid=(int(start)+int(end))/2
key=input("enter value to search")
def search(start,end,key):
if key==tup[mid]
print mid
else if key<tup[mid]
search(start,mid,key)
else if key>tup[mid]
search(mid,end,key)
else
return(-1)
我得到一个错误的
File "binsearch.py", line 8
if key==tup[mid]
^
语法错误:无效的语法
我相信我为失去了一些东西微不足道,但无法弄清楚!如果你觉得还有其他错误,请告诉我。谢谢:)
功能搜索似乎在不同的分支中做不同的事情。如果找到了,它用C语言打印作为“void函数”的索引,而在最后一种情况下,返回的东西像“int函数”一样返回。干净的解决方案是在if分支中返回中间(将打印转移到调用者),但返回也必须添加到递归调用中。 – guidot 2012-07-05 12:18:39