嗨,我用一個非常簡單的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