+ -
当前位置:首页 → 问答吧 → 新手~~查找序列中的已知数,如何设定为自动查找整个序列

新手~~查找序列中的已知数,如何设定为自动查找整个序列

时间:2010-10-21

来源:互联网

二叉树搜索
>>>def search(sequence,number,lower,upper):
... if lower==upper:
... assert number==sequence[upper]
... return upper
... else:
... middle=(lower+upper)/2
... if number<sequence[middle]:
... return search(sequence,number,lower,middle)
... else:
... return search(sequence,number,middle+1,upper)

>>> test=[2,45,23,15,89,99,51]
>>> test.sort()
>>> search(test,45)
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
TypeError: search() takes exactly 4 positional arguments (2 given)
如何不提供lower和upper的参数,让程序自动查找整个序列啊?

作者: c2091986   发布时间: 2010-10-21

Python code
def search(sequence, number, lower = 0, upper = -1):
    if upper == -1:
        upper = len(sequence) - 1
    ...

作者: iambic   发布时间: 2010-10-22

觉的用python应该避免去造轮子,试试bisect内置模块,如果list元素个数多的话,速度也可快个数量级

作者: angel_su   发布时间: 2010-10-22