【发布时间】:2015-01-12 10:39:02
【问题描述】:
我已经学习 python 大约一个星期了,我尝试创建二进制搜索函数:
def bin_srch(a, b, c, d):
l_c = map(int, c.split(" "))
l_d = map(int, d.split(" "))
for n in l_d:
if n <= l_c[a/2]:
for j in l_c[0:(a/2)+1]:
if j == n:
print l_c.index(j)+1,
elif n not in l_c[0:(a/2)+1]:
print -1,
elif n > l_c[a/2]:
for j in l_c[a/2:a]:
if j == n:
print l_c.index(j)+1,
elif n not in l_c[a/2:a]:
print -1,
但是,当我用一些输入测试函数时:
bin_srch(5,6,
"10 30 50 60 70",
"60 10 50 10 5")
产生4 1 3 1 -1 -1 -1 而不是4 1 3 1 -1。有人可以解释一下吗?
【问题讨论】:
-
请重命名您的参数/变量以获得更具描述性的名称
-
这个函数到底应该做什么?为什么结果应该是
4 1 3 1 -1?